C#中的MS Word自动化 – 无法将类型为’System.String [*]’的对象转换为键入’System.String []’

前端之家收集整理的这篇文章主要介绍了C#中的MS Word自动化 – 无法将类型为’System.String [*]’的对象转换为键入’System.String []’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用这个代码来获得MS Word 2007文档(.docx)中使用的String数组的标题
dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading);

使用调试器,我看到arr动态地分配了一个String数组,其中包含文档中所有标题标题(约40个条目).到现在为止还挺好.

然后,我想访问字符串,但不管我怎么做,我得到以下异常:

InvalidCastException: 
           Unable to cast object of type 'System.String[*]' to type 'System.String[]'.

我尝试过不同的访问字符串的方法

按指数:

String arr_elem = arr[1];

通过转换为IEnumerable:

IEnumerable list = (IEnumerable)arr;

通过使用简单的foreach循环:

foreach (String str in arr)
{
   Console.WriteLine(str);
}

然而,无论我尝试什么,我总是会遇到与上述相同的例外.

任何人都可以解释我在这里失踪/我做错了什么?特别是String [*] – 这是什么意思?

解决方法

尝试
object arr_r = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading);
Array arr = ((Array) (arr_r));

string myHeading = (string) arr.GetValue(1);

猜你在找的C#相关文章