excelFilesNames
是string
的数组,excelFilesNames
中的值超过1。
在打印oVariableName[2]
值时,它会打印"system.string"
。我想通过将excelFilesNames
分配给oVariableName[2]
来打印Object[] oVariableName = new object[3];
oVariableName[2] = excelFilesNames;
MessageBox.Show(oVariableName[2].ToString());
的所有值。
代码在
之下{{1}}
答案 0 :(得分:1)
Object[] oVariableName = new object[3];
oVariableName[2] = string.Join(",", excelFilesNames);
MessageBox.Show(oVariableName[2]);
您不需要使用Object[]
:
var fileNames = string.Join(",", excelFilesNames);
MessageBox.Show(fileNames);
答案 1 :(得分:0)
由于已知oVariableName[2]
的内容为string[]
,您可以将其转换为string[]
并使用string.Join()
创建一行多行字符串每个文件名,如下:
MessageBox.Show(string.Join("\n", (string[])oVariableName[2]));
但是,如果oVariableName[2]
不是字符串数组,这将在运行时爆炸。你可以这样保护:
var asStringArray = oVariableName[2] as string[];
if (asStringArray != null)
MessageBox.Show(string.Join("\n", asStringArray));
我真的不明白为什么你会以这种方式使用一系列对象,但我想有一些你没有告诉我们的背景。
答案 2 :(得分:0)
excelfileNames是字符串数组,所以当你分配给oVariableName [2]时 你应该为它指定一个特定的值,而不是分配整个对象。
类似下面的代码。
string [] excelFilesNames = new string[]{ "One","Two"};
Object[] oVariableName = new object[3];
oVariableName[2] = excelFilesNames[1];
MessageBox.Show(oVariableName[2].ToString());