加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:45:48 所属栏目:百科 来源:网络整理
导读:我使用这个代码来获得MS Word 2007文档(.docx)中使用的String数组的标题: dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading); 使用调试器,我看到arr动态地分配了一个String数组,其中包含文档中所有标题的标题(约40个条目).
我使用这个代码来获得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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读