我有一系列字段名称。我认为我的问题类似于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];
}
答案 0 :(得分:3)
您无法动态创建变量。
使用此选项的最佳选择是使用Dictionary<string, TValue>
来存储变量名称及其值。
在你的情况下,你可能需要这样的东西(假设rowField
是string
):
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] : "";
然而,简单地复制已经存储在数组中的信息需要做很多工作,所以坚持使用数组。