gpt4 book ai didi

c# - 在 C# 中向变量名添加一个数字

转载 作者:行者123 更新时间:2023-11-30 19:17:37 25 4
gpt4 key购买 nike

我的问题有点像这里的问题: How do I name variables dynamically in C#?但是它有点不同所以我想知道它是否可能。

我正在尝试从 .settings 文件中读取一堆字符串。我将它们都命名为 Time1、Time2、Time3 等...我希望用户能够向文件添加更多时间,这样可能会有 Time100 或更多时间。我在设置文件中有一个大小,它将跟踪时间变量的数量。我想写一些可以读入所有时间字符串的东西。我认为用 100 个时间变量预先填充 .settings 文件是愚蠢的,所以我知道它们在那里,然后手动读取每个时间变量。
所以我想知道是否有一种方法可以让我在 Timei 或 Time+i 中读取,其中 I 是一个整数,我可以将其放入一个循环中以找到它们。(请注意,数据是字符串而不是时间,它只是要转换为星期几)如:(Days 来自 ApplicationSettingsBase [aka file add new 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())
}
}
}

希望所有这些至少让我清楚地知道我想做什么。

编辑 - 我开始认为我的问题实际上与 .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);
}

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

再次感谢所有提供帮助的人。

最佳答案

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

hashtable["Time1"]...hashtable["TimeN"]

关于c# - 在 C# 中向变量名添加一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17036859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com