我正在尝试使用for循环遍历一系列变量名,每个变量名以1到10结尾。我已经看到了该问题的其他一些答案,但是无法针对我的特定情况进行任何工作情况。我的代码如下:
string cat2Pos0 = cat2[0];
int numOfPos0 = cat2.Where(x => x.Equals(cat2Pos0)).Count();
List<int> indexOfPos0 = new List<int>();
bool check = cat2.Contains(cat2Pos0);
int index = 0;
if (check == true)
{
for (int i = 0; i < numOfPos0; i++)
{
index = cat2.FindIndex(x => x == cat2Pos0);
indexOfPos0.Add(cat2.IndexOf(cat2Pos0));
}
}
else if (cat2Pos0 == "-")
{
numOfPos0 = 17;
}
我需要遍历10个变量名称cat1-cat10。在代码中:每当有短语“ cat”时,我都需要能够根据for循环进行调整,例如cat1或cat5:
string cat3pos0 = cat3[0];
或:
index = cat3.FindIndex(x => x == cat3Pos0);
不幸的是,我无法简单地单独写出每个变体,因为这将占用将近3700行代码,我希望有一种更好的方法来实现这一目标。
非常感谢,非常感谢所有帮助,
乔什
答案 0 :(得分:1)
请参见here如何为此使用反射。 (类似于this.GetType().GetField("cat" + i.ToString());
。)
但是我真的建议您将变量更改为10个变量的一个数组。因此cat
将是一个数组数组(因为您的cat
似乎是数组)。