我在尝试循环数组时收到错误(无法将类型System.Array隐式转换为字符串).我已经遵循代码并且for循环带回了正确的值.
public static string[] name = new string[] { "Chris" };
public static void FindMergeFielsa(WordprocessingDocument WPDoc, Dictionary<string, Array> WordMergeFields)
{
foreach (var field in WPDoc.MainDocumentPart.Document.Body.Descendants<SimpleField>())
{
string[] instruction = field.Instruction.Value.Split(splitChar, StringSplitOptions.RemoveEmptyEntries);
if (instruction[0].ToLower().Equals("mergefield"))
{
string fieldname = instruction[1];
foreach (var fieldtext in field.Descendants<Text>())
{
if (fieldtext.InnerText =="«_skils»")
{
//TODO
}
else
{
for (int i = 0; i < name.Length; i++)
{
string value = name[i];
//ERORR HERE Keeps Changing Value of Name "Chris" to system.string[] when put .ToString()
value = WordMergeFields.ContainsKey(fieldname) ? WordMergeFields[fieldname] : null;
if (value != null)
{
fieldtext.Text = value;
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
例外情况正在发生
value = WordMergeFields.ContainsKey(fieldname) ? WordMergeFields[fieldname] : null;
Run Code Online (Sandbox Code Playgroud)
我试图将WordMergeFields [fieldname]转换为字符串,但是当发生这种情况时,它会显示带有此代码所连接的单词模板的名称,从而调出System.String [],其中名称为"chris".我只是想知道如何解决转换类型system.array到字符串的问题.感谢您提供的任何帮助
那是因为WordMergeFields是Dictionary<string, Array> WordMergeFields.
WordMergeFields[fieldname] 将返回一个数组.
你不是要把它声明为具有值类型的字典string吗?
Dictionary<string, string> WordMergeFields
Run Code Online (Sandbox Code Playgroud)