2

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

但是,此代码将不起作用。有没有办法实现这样的代码?

4

1 回答 1

9

怎么样:

X[] x = list.Select(param => new X { Parameter = param }).ToArray();

在这里,.Select(...)创建一个投影,即对列表中的每个项目执行new X {...}操作的序列;将该.ToArray()序列转换为数组。

于 2012-07-24T13:07:00.403 回答