0

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

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

乔什

4

1 回答 1

1

请参阅此处如何为此使用反射。(有点像this.GetType().GetField("cat" + i.ToString());。)

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

于 2020-05-03T20:26:43.923 回答