如何删除重复的元素在一个数组使用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;
我结合了你的分组想法和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的解决方案是线性的,因此要好得多。