循环遍历更改变量名称的数组

时间:2015-06-29 12:24:25

标签: c#

我有一系列字段名称。我认为我的问题类似于this,但我似乎无法用手指缠绕它。所以我要问。我正在excel中创建一个数据透视表。我必须添加rowFields根据作为其数据源的List对象生成的数组。我要做的是我有一个变量rowField1一直到rowField5。我想尝试做这样的事情:

// Please note this array can have anywhere from 1 string to 5 strings
string[] rowFields = { "Name", "EmployeeID", "Address", "Phone", "Pet_Name" }

for(int i = 0; i < rowFields.Length; i++;)
{
    rowField + i = rowfields[i];
}

2 个答案:

答案 0 :(得分:3)

您无法动态创建变量。

使用此选项的最佳选择是使用Dictionary<string, TValue>来存储变量名称及其值。

在你的情况下,你可能需要这样的东西(假设rowFieldstring):

Dictionary<string, string> d = new Dictionary<string, string>();
d[rowField + i] = rowfields[i];

您可以使用foreach对其进行迭代,或使用变量名称访问成员。

答案 1 :(得分:0)

您不能创建这样的变量。你必须做很多事情:

string[] rowFields = {"Name","EmployeeID","Address","Phone","Pet_Name"}

var rowField1 = rowFields[0];
var rowField2 = rowFields.Length >= 2 ? rowFields[1] : "";
var rowField3 = rowFields.Length >= 3 ? rowFields[2] : "";
var rowField4 = rowFields.Length >= 4 ? rowFields[3] : "";
var rowField5 = rowFields.Length >= 5 ? rowFields[4] : "";

然而,简单地复制已经存储在数组中的信息需要做很多工作,所以坚持使用数组。