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 に答える