使用for循环遍历变量名

时间:2020-05-03 20:14:34

标签: c# for-loop variables variable-initialization

我正在尝试使用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行代码,我希望有一种更好的方法来实现这一目标。

非常感谢,非常感谢所有帮助,

乔什

1 个答案:

答案 0 :(得分:1)

请参见here如何为此使用反射。 (类似于this.GetType().GetField("cat" + i.ToString());。)

但是我真的建议您将变量更改为10个变量的一个数组。因此cat将是一个数组数组(因为您的cat似乎是数组)。