我有一个班级Measurement
。
我在这个类中有一个构造函数。为:
class Measurement
{
public Measurement(MainWindow mainWindow)
{
....
}
}
如何使用MainWindow参数创建8个对象的数组?
就像我代码中的某处:
Measurement[] measurements= new Measurement[8](mainWin);
答案 0 :(得分:14)
您可以使用LINQ:
var measurements = Enumerable.Range(0, 8).Select(i => new Measurement(mainWin)).ToArray();
第二种方法是使用数组初始化语法:
var measurements = new[] {
new Measurements(mainWin), new Measurements(mainWin),
new Measurements(mainWin), new Measurements(mainWin),
new Measurements(mainWin), new Measurements(mainWin),
new Measurements(mainWin), new Measurements(mainWin)
};
答案 1 :(得分:14)
您想要一个具有8次单引用的数组,还是8个单独的 Measurement
个对象?
第一个:
var measurements = Enumerable.Repeat(new Measurement(mainWin), 8).ToArray();
第二个:
var measurements = Enumerable.Range(0, 8)
.Select(_ => new Measurement(mainWin))
.ToArray();
(或者只是在不初始化元素的情况下创建数组,然后用循环填充它。这是个人偏好的问题。)
答案 2 :(得分:3)
有这种方式(使用Enumerable.Repeat):
var measurements = Enumerable.Repeat(new Measurement(mainWin), 8).ToArray();
引用:
生成包含一个重复值的序列。
答案 3 :(得分:2)
Measurement[] measurements= new Measurement[8];
for(int i = 0; i < measurements.Length; i++)
{
measurements[i] = new Measurement(mainWin);
}