私はそのような構造を持っています
List<int[]> nodeIds = new List<int[]>();
から各要素を取得できますint[]
か?どうすればそれを行うことができますか?
例えば:
foreach(int[] items in nodeIds)
foreach(int item in items)
// do something with item
Linq Enumerable.SelectManyメソッドを使用して、シーケンスを 1 つのシーケンスにフラット化できます。
IEnumerable<int> allIds = nodeIds.SelectMany(x => x);
更新: 結果のシーケンスで一意の ID のみが必要な場合は、シーケンスをフラット化した後にEnumerable.Distinctも適用します。
あなたがする必要があるList
のint[]
は、の各アイテムの各要素を取得することですList
。そのためには、ネストされたサイクルを使用する必要があります.1つはリストに対して、2番目は現在考慮されているリスト項目の配列に対してです。
何かのようなもの:
foreach(var nodeId in nodeIds)
{
foreach(var id in nodeId)
{
//do stuff with id
}
}
また
nodeIds[0][0]
リスト内のすべての配列からすべての整数を取得する場合は、次のSelectMany
メソッドを使用できIEnumerable
ます。
IEnumerable<int> allIDs = nodeIds.SelectMany(a => a);
を使用して結果を列挙したり、結果foreach
に対して集計を実行したりできます。