如何通过将字符串赋值给字符串来访问字符串数组的值?

时间:2015-05-04 12:18:18

标签: c#

excelFilesNamesstring的数组,excelFilesNames中的值超过1。 在打印oVariableName[2]值时,它会打印"system.string"。我想通过将excelFilesNames分配给oVariableName[2]来打印Object[] oVariableName = new object[3]; oVariableName[2] = excelFilesNames; MessageBox.Show(oVariableName[2].ToString()); 的所有值。

代码在

之下
{{1}}

3 个答案:

答案 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());