如何在条件逻辑中将整数迭代器附加到字符串的末尾?C#winforms

如何在条件逻辑中将整数迭代器附加到字符串的末尾?C#winforms,c#,for-loop,conditional,C#,For Loop,Conditional,我试图检查数组中没有的字符串列表,这些字符串存储为7个单独的变量 在这种情况下,是否可以将i附加到floor变量的末尾,以便基于该变量进行选择?所以有点像 for (int i = 0; i < 7; i++) { if (floor(i) ...) } for(int i=0;i

我试图检查数组中没有的字符串列表,这些字符串存储为7个单独的变量

在这种情况下,是否可以将i附加到floor变量的末尾,以便基于该变量进行选择?所以有点像

for (int i = 0; i < 7; i++)
{
    if (floor(i) ...)
}
for(int i=0;i<7;i++)
{
如果(一楼)
}
谢谢。

在C#没有这样的供应。但是,您可以更改代码以保留字符串列表(
list
)。通过这种方式,您可以获得需要使用的索引

List<List<string>> floors = new List<List<string>>();
//... populate data
for (int i = 0; i < floors.Count; i++)
{
    List<string> floor = floors[i];
    //Perform work on floor
}
列出楼层=新建列表();
//... 填充数据
对于(int i=0;i

由于我只能看到您的代码片段,这只是一个基本示例。

添加该字符串的集合不会增加内存消耗(因为字符串是通过引用存储的,而不是数据复制)。但是,您将获得更合适的方式来操作数据:

// init a collection container
var floors = new string[] {floor0, floor1, floor2, floor3, floor4, floor5, floor6, };

// old-school "array + loop"
for (int i = 0; i < 7; i++)
{
    if (floors[i] ...)
}

// or functional-style LINQ
var interestingFloorsIterator = floors.Where(...condition predicate...);
var interestingFloorsArray = floors.Where(...condition predicate...).ToArray();

// etc... etc... etc...
//初始化集合容器
var floors=新字符串[]{floor0,floor1,floor2,floor3,floor4,floor5,floor6,};
//老派的“数组+循环”
对于(int i=0;i<7;i++)
{
如果(楼层[i]…)
}
//还是功能型LINQ
var interestingFloorsIterator=楼层。其中(…条件谓词…);
var interestingFloorsArray=floors.Where(…条件谓词…).ToArray();
//等等。。。等等

是,不将它们存储在编号变量中,而是存储在集合中。你尝试过什么?@CodeCaster我最终将它们储存在一个集合中,但我很好奇这是否是一个可行的解决办法。谢谢你的回答:)你的说法是错误的。别忘了反思!如果变量是局部变量,那么再多的反射也救不了你。此外,假设它们是场,在这里使用反射不是一个好的解决方案。首先,正确的解决方案是将它们存储在一个集合中。根据我们所掌握的有关他当前代码的信息,我凭直觉对其进行了调用。如果提供更多,这可能会发生变化。@LasseVågsætherKarlsen是的,如果变量是局部反射,则没有帮助。但我们不知道,因此我认为这种说法是错误的。最好的解决方案仍然是将它们存储在一个集合中。尽管如此,通过反思还是可以做到的!最后去收集,但还是谢谢你的回复!:)完美的我在想这个方法,但我很好奇我提到的方法是否可行。谢谢你的回复。