在循环中按名称访问动态对象

时间:2014-01-04 01:52:58

标签: c# loops

我是c#的新手,因为我是php / js / html开发人员。 我有8个名为relay_1,relay_2,relay_3等的交换机 我需要能够改变这些状态,但我想通过for循环来做,所以数字是动态的。 我尝试了各种方法但无济于事。 任何帮助将不胜感激。 这就是我想要的(不正确)

for (int i = 0; i < 8; i++)
{
  relay_" + i.IsChecked = true;
}

1 个答案:

答案 0 :(得分:5)

您无法动态生成变量的名称,但您可以创建一个relay对象数组(下面的allRelays变量),并在循环中执行操作,如下所示:

var allRelays = new {relay_0, relay_1, relay_2, relay_3, relay_4, relay_5, relay_6, relay_7, relay_8};
foreach (var relay in allRelays) {
    relay.IsChecked = true;
}