gpt4 book ai didi

c# - C# 中的 MS Word 自动化 - 无法将类型为 'System.String[*]' 的对象转换为类型 'System.String[]'

转载 作者:太空狗 更新时间:2023-10-29 17:38:22 26 4
gpt4 key购买 nike

我使用此代码获取 MS Word 2007 文档 (.docx) 中使用的标题字符串数组:

dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading);

使用调试器,我看到 arr 被动态分配了一个字符串数组,其中包含文档中所有标题的标题(大约 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[*] - 这是什么意思?

最佳答案

string[] 是一个向量 - 一个基于 0 的一维数组。然而,string[*] 是一个常规数组,恰好具有一维。基本上,您必须将其作为 Array 进行处理,然后将数据复制出来,或者使用 Array API 而不是 string[] API。

这与typeof(string).MakeArrayType()(向量)和typeof(string).MakeArrayType(1)(a 1 -d 非向量)。

关于c# - C# 中的 MS Word 自动化 - 无法将类型为 'System.String[*]' 的对象转换为类型 'System.String[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com