LINQ - 过滤列表仅返回单次出现的项目

时间:2017-01-20 17:08:39

标签: linq

鉴于我有一个

List<int> listNum = new List<int>{1, 1, 2, 3, 3, 4, 5, 5}

如何过滤以仅从列表中返回{2,4}

2 个答案:

答案 0 :(得分:1)

LINQ解决此问题的方法始于对相同的项目进行分组,如下所示:

var groups = listNum.GroupBy(num => num);

现在您需要做的就是过滤掉包含多个项目的群组:

var singular = groups.Where(g => g.Count() == 1).Select(g => g.Key);

答案 1 :(得分:0)

试试这个

List<int> listNum = new List<int>{1, 1, 2, 3, 3, 4, 5, 5};

listNum.GroupBy(t=>t).Where(s=> s.Count() ==1).Select(i=> i.Key).Dump();