在C#中为变量名添加数字

Kre*_*ell 2 c# variables dynamic

我的问题有点像这里找到的问题: 如何在C#中动态命名变量? 然而它有点不同所以我想知道它是否可能.

我正在尝试从.settings文件中读取一堆字符串.我把它们全部命名为Time1,Time2,Time3等......我希望用户能够为文件添加更多次数,以便可以有Time100或更多.我在设置文件中有一个大小,可以跟踪时间变量的数量.我想写一些将在所有Time字符串中读取的内容.我认为用100个时间变量预先填充.settings文件是愚蠢的,所以我知道它们在那里,然后在每个变量中手动读取.
所以我想知道是否有一种方法可以在Timei或Time + i中读取,我是一个整数,我可以放入一个可以找到它们的循环.(注意数据是字符串而不是时间,它只是转换为星期几)例如:( Days来自ApplicationSettingsBase [又名文件添加新的Settings1.settings]

    public static int AvDaysIndex = Days.Default.Size; //This holds the number of items in Days
    public static DayOfWeek[] AvailableDays = new DayOfWeek[AvDaysIndex]; //This is where I wants to read in all the variables Aka Time1 Time2 Times3 


    public ReadInDays() //Reads in from the .settings File
    {
        if(AvDaysIndex>0) // Makes sure there is something in Days to read
        {
              int I=0;
              //I can Manually do the following
               AvailableDays[I++] = Days.Default.Time1;
               AvailableDays[I++] = Days.Default.Time2;
               AvailableDays[I++] = Days.Default.Time3; //etc...


             //Is there a way to do something like this
            for (int i = 0; i < AvDaysIndex; i++) //reads in each time
            { 
                AvailableDays[i] = Days.Default.Time +i;//where I would be added to the variable name to find it?

               //Or something like
               AvailableDays[i] = Days.Default.Time(I.tostring())
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

希望所有这一切至少清楚我要做的事情.

编辑 - 我开始认为我的问题实际上是.settings文件.如果我只从其他值没有名称的文件类型中读取值,即使文件中有可变数量的元素,我也可以轻松读取它们.

方案 -

            for (int i = 0; i < Index; i++)
            {
                AvailableDays[i] = getFromFile(_Days.Default.Properties["Time" + (i+1).ToString()].DefaultValue.ToString());
                AvailableTimes[i] = Convert.ToDateTime(_Times.Default.Properties["Time" + (i + 1).ToString()].DefaultValue);  
            }  
Run Code Online (Sandbox Code Playgroud)

这一切都在弄清楚如何从.settings文件中读取,而不是直接读取它.也就是Days.Default.Time1; 我不得不从Days.Default.Properties进行通用查找,然后我可以创建一个动态名称并找到它.你们可能试图告诉我怎么做,我只是不明白.

再次感谢所有帮助过的人.

TGH*_*TGH 6

我会使用散列表/字典来存储Days.Default.TimeX变体

hashtable["Time1"]...hashtable["TimeN"]
Run Code Online (Sandbox Code Playgroud)