首页 > 解决方案 > 重命名单个变量并使用 For 循环 C# 从列表中为它们分配值

问题描述

我有一个项目列表(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

谢谢你的帮助!

标签: c#for-loopvariablesrename

解决方案


如果您将TXs 设置为属性,则反射是一种方法

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

https://dotnetfiddle.net/qEoaok

如果这个问题不是关于技术可能性并且您想在您的应用程序中使用它,您最好找到一种不同的方法。


推荐阅读