我必须设置一个期望得到一个数组的属性,因此我需要一个 X 类实例的数组,如下所示:
X[] x = new X[]
{
new X () { Parameter = parameter },
new X () { Parameter = parameter2 }
// ...
}
由于参数在运行时生成并存储在列表中,因此应该动态创建实例。我通过该代码实现了预期目标
X[] x = new X[list.Count];
for (int i = 0; i < list.Count; i++)
{
x[i] = new X() { Parameter = list.ElementAt(i) }
}
这些线条发挥了它们的作用,但是,我对这些线条并不满意。我想改变一些东西,即看起来像伪代码的代码
X[] x = new X[]
{
foreach (var item in list)
{
new X () { Parameter = item }
}
}
但是,此代码将不起作用。有没有办法实现这样的代码?
最佳答案
怎么样:
X[] x = list.Select(param => new X { Parameter = param }).ToArray();
此处,.Select(...)
创建了一个投影,即为列表中的每个项目执行 new X {...}
操作的序列; .ToArray()
将该序列转换为数组。
关于c# - 我可以使用 foreach 和初始声明 reshape 该代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631503/