重命名单个变量并使用For循环C#从列表中为其分配值

时间:2019-02-19 12:15:28

标签: c# for-loop variables rename

我有一个项目列表(Tlist),我想将它们连续分配给各个变量(T0-T4),这些变量也可以连续命名。

        List<int?> Tlist = new List<int?>();

        Tlist.Add(1);
        Tlist.Add(4);
        Tlist.Add(3);
        Tlist.Add(1);
        Tlist.Add(5);

        int? T0 = null;
        int? T1 = null;
        int? T2 = null;
        int? T3 = null;
        int? T4 = null;

我可以这样做:

        int g = 0;
        T0 = Tlist[g++];
        T1 = Tlist[g++];
        T2 = Tlist[g++];
        T3 = Tlist[g++];
        T4 = Tlist[g++];

但是,如何在Forloop中重命名变量T0-T4,以提供相同的输出而不必重写每个变量?我想要类似的东西:

        int g = 0;
        for (int i = 0; i < Tlist.Count; i++)
        {
            Tg++ = Tlist[g++];
        }

所以输出是:

        T0 = 1
        T1 = 4
        T2 = 3
        T3 = 1
        T4 = 5

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您确实不需要它,而已为此而添加了int?[]即可。你可以说

var arr = Tlist.ToArray();

答案 1 :(得分:1)

反射是将TX设置为属性的一种方式

typeof(myClass).GetProperty("T" + i).SetValue(myClassInstance, i);

https://dotnetfiddle.net/qEoaok

如果此问题与技术可能性无关,并且您想在自己的应用程序中使用它,则最好找到其他方法。