c#比较MS Word中的样式对象

c#比较MS Word中的样式对象,c#,ms-word,word-style,C#,Ms Word,Word Style,我必须编辑word文档中的所有标题 我试过这个: Word.WdBuiltinStyle[] styleArray = { Word.WdBuiltinStyle.wdStyleHeading1, Word.WdBuiltinStyle.wdStyleHeading2, Word.WdBuiltinStyle.wdStyleHeading3, Word.WdBuiltinStyle.wdStyleHeading4, Word.WdBuiltinStyle.

我必须编辑word文档中的所有标题

我试过这个:

Word.WdBuiltinStyle[] styleArray = {
    Word.WdBuiltinStyle.wdStyleHeading1,
    Word.WdBuiltinStyle.wdStyleHeading2,
    Word.WdBuiltinStyle.wdStyleHeading3,
    Word.WdBuiltinStyle.wdStyleHeading4,
    Word.WdBuiltinStyle.wdStyleHeading5,
    Word.WdBuiltinStyle.wdStyleHeading6,
    Word.WdBuiltinStyle.wdStyleHeading7,
    Word.WdBuiltinStyle.wdStyleHeading8,
    Word.WdBuiltinStyle.wdStyleHeading9
  };

  foreach (Word.Paragraph paragraph in Globals.ThisAddIn.Application.ActiveDocument.Paragraphs)
  {
    if (styleArray.Any(a => a.Equals((Word.WdBuiltinStyle)paragraph.Range.get_Style())))
    {
      paragraph.Range.Font.Size = size;
      paragraph.Range.Font.Name = font;
    }
  }
但它说我不能选演员,我觉得这不是一个很好的方式

它也不适用于

if (styleArray.Contains(paragraph.Range.get_Style()))

请提供这方面的帮助?

内置样式枚举与实际样式之间存在差异。这就是为什么这种比较不起作用。数组需要是样式数组。例如:

Word.Document doc = Globals.ThisAddin.Application.ActiveDocument;
enter code here
Word.Style[] styleArray = {
  doc.Styles(Word.WdBuiltinStyle.wdStyleHeading1),
  doc.Styles(Word.WdBuiltinStyle.wdStyleHeading2),
  doc.Styles(Word.WdBuiltinStyle.wdStyleHeading3) //and so on
};
太好了@DomMa:-)希望一切继续顺利!