代码之家  ›  专栏  ›  技术社区  ›  BR75

使用LINQ从列表中删除两个重复项(如果一个重复)

  •  0
  • BR75  · 技术社区  · 7 年前

    如何使用LINQ从列表中删除重复项和与重复项进行比较的其他项。以下是查询:

    var test = myList
      .GroupBy(x => x.WHEN)
      .Select(y => y.First())
      .ToList();
    

    这里的列表已经排序,并且何时引用日期时间。这就是我想要实现的。

    01.01.2018 08:00:00 --> should be removed
    01.01.2018 08:00:00 --> should be removed
    01.01.2018 08:10:00
    01.01.2018 08:11:00
    02.01.2018 08:00:45 --> should be removed
    02.01.2018 08:00:45 --> should be removed
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Dmitrii Bychenko    7 年前

    让我们按组大小筛选 仅项目):

     var test = myList
       .GroupBy(x => x.WHEN)
       .Where(group => group.Count() == 1) // single item groups only
       .Select(group => group.First())
       .ToList();
    
        2
  •  1
  •   Lucifer    7 年前

    您可以尝试以下LINQ代码:

    myList.GroupBy(x => x.WHEN)
          .Where(x => x.Any(xEle => myList.Where(ele => ele == xEle))
          .Count() == 1)
          .ToList();