c# - 我可以使用 foreach 和初始声明 reshape 该代码吗

标签 c# arrays foreach

我必须设置一个期望得到一个数组的属性,因此我需要一个 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/

相关文章:

java - java中方法无法识别的错误

c# - 使用 linq 和 lambdas 的多分隔字符串到对象列表

java.lang.ClassCastException : java. util.Arrays$ArrayList 无法转换为 java.lang.Integer

php - Perl 相当于 Php foreach 循环

php - 数组内的foreach循环

c++ - 数组和结构在 C++ 中初始化

c# - 将 DataRow 项设置为 null

c# - 将 java 与 C#.net 集成

c# - 在 UITypeEditor 的 EditValue 中访问额外的上下文数据

c# - 在 C# 中,有没有办法为新数据类型编写自定义对象初始值设定项?