正在使用索引删除锯齿形数组中的项目

本文关键字:数组 项目 锯齿形 删除 索引 | 更新日期: 2023-09-27 18:28:35

我想使用独立移除Jagged数组中的项。

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

预期结果

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

MainArray如何从to remove列表中删除具有索引的项?

有没有一种有效的方法来使用LINQ?

正在使用索引删除锯齿形数组中的项目

希望这能给出预期的结果:

var notInToRemove = MainArray
    .Where((arr ,index) => !toRemove.Contains(index)).ToArray();

如果只需要toRemove集中不存在的数据,则可以使用ElementAt方法而不是Remove方法。

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);