如何删除重复的元素在一个数组使用LINQ?删除重复的元素

本文关键字:元素 删除 数组 LINQ 一个 何删除 | 更新日期: 2023-09-27 18:11:31

int [] n=new int[10]{2,3,33,33,55,55,123,33,88,234};
output=2,3,123,88,234;

使用LINQ我可以用两个for循环来连续检查。但我需要一个更简单的方法使用LINQ

它不删除重复项…通过distinct删除重复项将得到= 2,3,123,33,55,88,234我的输出应该是= 2,3,123,,88,234;

如何删除重复的元素在一个数组使用LINQ?删除重复的元素

我结合了你的分组想法和matiash的计数。不确定它的速度。

var result = n.GroupBy(s => s).Where(g => g.Count() == 1).Select(g => g.Key);

更新:我已经测量了速度,似乎时间是线性的,所以你可以在大型集合上使用它

var result = n.Where(d => n.Count(d1 => d1 == d) <= 1);

这表示:只取在n中最多出现1次的元素。

它是二次的。对于短集合不重要,但是可以改进。

编辑 Dmitry的解决方案是线性的,因此要好得多。