LINQ:选择仅在列表中出现一次的元素

Gra*_*ton 7 c# linq

我有一个对象列表,可以是任何类型T.

如何使用linq仅选择一次出现在该列表中的对象列表?例如,如果我的列表是 {2,3,4,5,8,2,3,5,4,2,3,4,6},那么输出应该是{6,8}.

Cor*_*ius 7

你可以试试这个:

int[] arr = { 2, 3, 4, 5, 8, 2, 3, 5, 4, 2, 3, 4, 6 };
var q =
    from g in arr.GroupBy(x => x)
    where g.Count() == 1
    select g.First();
Run Code Online (Sandbox Code Playgroud)