Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用LINQ从数组中删除对象_.net_Arrays_Linq - Fatal编程技术网

.net 如何使用LINQ从数组中删除对象

.net 如何使用LINQ从数组中删除对象,.net,arrays,linq,.net,Arrays,Linq,我有一个类型为A的对象数组: A[]ar。 和整数列表: 列出索引 如何使用LINQ从ar中删除索引中具有索引的所有对象? 也就是说,我需要一个新的(更小的)数组,该数组不包含其索引位于索引中的对象。使用LINQ 保留对象的顺序是否与删除前相同 非常感谢。这可能看起来很奇怪,但它符合您的要求(它不是LINQ): var filtered=newlist(); 对于(变量i=0;i

我有一个类型为A的对象数组:
A[]ar
。 和整数列表:
列出索引

如何使用LINQ从
ar
中删除
索引中具有索引的所有对象?
也就是说,我需要一个新的(更小的)数组,该数组不包含其索引位于
索引中的对象。使用LINQ


保留对象的顺序是否与删除前相同


非常感谢。

这可能看起来很奇怪,但它符合您的要求(它不是LINQ):

var filtered=newlist();
对于(变量i=0;i

如果你的整数列表很大,考虑使用<代码> HasSET/<代码>而不是列表来获得更多的性能

这看起来很奇怪,但是它符合你想要的(不是LINQ):

var filtered=newlist();
对于(变量i=0;i

如果你的整数列表很大,考虑使用<代码> HasStuts而不是列表来获得更多的性能

,你不能只修改它包含的元素。

但您可以轻松创建替换阵列:

myArray = myArray.Where(x => x.KeepThisElement).ToArray();
使用LINQ to对象(在本例中您将使用该对象),将当前索引传递给谓词的重载
,其中

myArray = myArray.Where((x, idx) => !indexes.Conatins(idx)).ToArray();

不能仅修改数组包含的元素

但您可以轻松创建替换阵列:

myArray = myArray.Where(x => x.KeepThisElement).ToArray();
使用LINQ to对象(在本例中您将使用该对象),将当前索引传递给谓词的重载
,其中

myArray = myArray.Where((x, idx) => !indexes.Conatins(idx)).ToArray();

是否要因此获得新阵列?数组是不可变的,您只能设置NULL而不是对数组的引用object@opewix仅仅设置null是不够的,我需要一个新的(更小的)数组,而不需要它们的索引在“索引”中的对象。你想得到一个新的数组吗?数组是不可变的,您只能设置NULL而不是对数组的引用object@opewix仅仅设置null是不够的,我需要一个新的(更小的)数组,它不包含索引位于“索引”中的对象。@openwix谢谢。。非linq版本确实非常简单。但是我想用LINQ查询做同样的事情。如果可能的话,当然。@openwix谢谢。。非linq版本确实非常简单。但是我想用LINQ查询做同样的事情。如果可能的话,当然。保留对象的顺序是否与删除前相同?谢谢。@Ilan是的,输入的可枚举项是按顺序处理的。剩余对象的顺序是否与删除前相同?谢谢。@Ilan是的,输入可枚举项按顺序处理。