0

インダイズを使用してジャグ配列の項目を削除したい。

int[] toRemove; (e.g, {0, 1})

int[][] MainArray (e.g. { [0] {...}, [1] {...}, [2] {...}}

期待される結果

int[][] result (e.g. {[2] {...}}

MainArrayから、toRemoveリストからインデックスを持つアイテムを削除する方法は?

LINQ を使用する効率的な方法はありますか?

4

2 に答える 2

3

うまくいけば、これにより期待される結果が得られます。

var notInToRemove = MainArray
    .Where((arr ,index) => !toRemove.Contains(index)).ToArray();
于 2012-03-22T14:08:51.287 に答える
0

toRemove セットに存在しないデータだけが必要な場合は、Remove メソッドの代わりに ElementAt メソッドを使用できます。

int[] toRemove = {0,1};
int[][] mainArray = new int[3][];
mainArray[0] = new int[]{0,0,0};
mainArray[1] = new int[]{1,1,1};
mainArray[2] = new int[]{2,2,2};

var result = mainArray.ElementAt(2); // This value 2 is found as all indexes of mainArray except the values in toRemove
//(Code would look like this : 
Enumerable.Range(0, mainArray.Length).Except(toRemove);
于 2012-03-22T14:09:08.670 に答える