不难,诀窍就是利用LINQ的GroupBy方法,然后依靠返回结果的IGrouping接口的Count属性来判断是否是重复元素。
代码:
//重复元素:3,4,5
//不重复元素:1,8,9
int[] arr = { 1, 3, 3, 3, 4, 5, 4, 5, 8, 9, 3 };
//不重复元素
var unique = arr.GroupBy(i => i)
.Where(g => g.Count() == 1)
.Select(g => g.ElementAt(0));
foreach (var i in unique)
Console.WriteLine(i);
//分割线
Console.WriteLine("===");
//重复元素
var duplicate = arr.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.ElementAt(0));
foreach (var i in duplicate)
Console.WriteLine(i);
输出:
1
8
9
===
3
4
5