Переименуйте отдельные переменные и присвойте им значения из списка с помощью цикла For C # - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть список элементов (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++];

Но как я могу переименовать переменные T0-T4 в Forloop, чтобы получить тот же вывод без необходимости переписывать каждую из переменных?Я хотел бы что-то вроде:

        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 голосов
/ 19 февраля 2019

Отражение - это один из способов, если вы зададите TX s для свойств

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

https://dotnetfiddle.net/qEoaok

Если этот вопрос не о технических возможностях и вы хотите использовать этов вашем приложении лучше найти другой подход.

0 голосов
/ 19 февраля 2019

Вы серьезно не нуждаетесь в этом и скорее можете просто иметь int?[] для этой цели, как уже прокомментировано.Вы можете просто сказать

var arr = Tlist.ToArray();
...