for循环中的新类
本文关键字:新类 循环 for | 更新日期: 2023-09-27 17:58:59
目前我有以下代码:
DecisionVariable[] attributes =
{
new DecisionVariable("Var1", 2),
new DecisionVariable("Var2", 4),
new DecisionVariable("Var3", 1),
new DecisionVariable("Var4", 2),
new DecisionVariable("Var5", 5),
};
但我想使用For循环创建它们:
DecisionVariable[] attributes =
{
for (int i=0;i<49;i++)
{
new DecisionVariable ("Var" + i, iValues[i]);
}
};
在第二个版本中,C#告诉我"For"有一个无效的表达式。
在构造函数中使用for循环时,我是在某个地方有拼写错误,还是通常不允许这样做?
不能在集合初始值设定项中使用for
循环。请使用以下代码:
DecisionVariable[] attributes = new DecisionVariable[49];
for (int i = 0; i < 49; i++)
attributes[i] = new DecisionVariable ("Var" + i, iValues[i]);
DecisionVariable[] attributes = new DecisionVariable[49];
for (int i=0; i<49; i++)
{
attributes[i] = new DecisionVariable("Var" + i, iValues[i]);
}
您也可以使用generics
并执行:
List<DecisionVariable> attributes = new List<DecisionVariable>();
for (int i=0; i<49; i++)
{
attributes.Add(new DecisionVariable("Var" + i, iValues[i]));
}
您可以使用LINQ语法来执行此操作:
DecisionVariable[] attributes =
Enumerable.
Range(0, 49).
Select(i => new DecisionVariable("Var" + i, iValues[i])).
ToArray();
使用Enumerable很方便。范围方法:
DecisionVariable[] attributes = Enumerable
.Range(0, 49)
.Select(i => new DecisionVariable("Var" + i, iValues[i]))
.ToArray();
如果iValues
阵列具有与attributes
阵列相同数量的元素,则考虑以下代码:
DecisionVariable[] decisionVariables = iValues
.Select((value, index) => new DecisionVariable("Var" + index, value))
.ToArray();
您可以这样做。
Class1[] c1 = new Class1[12];
for (int i = 0; i < 12; i++)
{
c1[i] = new Class1(i);
}