C# 使用Linq从列表中删除两个重复项(如果其中一个重复)

C# 使用Linq从列表中删除两个重复项(如果其中一个重复),c#,linq,C#,Linq,如何使用Linq从列表中删除重复项以及与重复项进行比较的其他项。以下是查询: var test = myList .GroupBy(x => x.WHEN) .Select(y => y.First()) .ToList(); 此处列表已排序,何时引用DateTime。这就是我想要实现的目标 01.01.2018 08:00:00 --> should be removed 01.01.2018 08:00:00 --> should be removed

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

var test = myList
  .GroupBy(x => x.WHEN)
  .Select(y => y.First())
  .ToList();
此处列表已排序,何时引用DateTime。这就是我想要实现的目标

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

您可以尝试以下linq代码:

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

您可以尝试以下linq代码:

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

让我们按组大小进行筛选(我们只需要一个项目的组):


让我们按组大小进行筛选(我们只需要一个项目的组):


使用Distinct()method@Satpal这并不能解决op的问题,因为他想删除那些重复的元素,甚至不需要单个元素it@Satpal这不会删除所有重复项。
var test=myList.GroupBy(x=>x.WHEN)。其中(group=>group.Count()==1)。选择(y=>y.First()).ToList()使用Distinct()method@Satpal这并不能解决op的问题,因为他想删除那些重复的元素,甚至不需要单个元素it@Satpal这不会删除所有重复项。
var test=myList.GroupBy(x=>x.WHEN)。其中(group=>group.Count()==1)。选择(y=>y.First()).ToList()
我没有,但是如果你已经只有那些
.Count()==1
的人,那么
.Distinct
有什么意义呢?不是我的反对票,但我尝试了你的方法,但没有结果。
我的列表。其中(ele=>ele==x)
t
t
组进行比较。我没有,但是如果你已经只有那些
.Count()==1
的人,那么
.Distinct
有什么意义呢?不是我的反对票,而是我尝试了你的方法,但没有任何结果。
myList.Where(ele=>ele==x)
正在将
T
T
组进行比较!group.Skip(1)。任何()efficient@arekzyla对于哪个LINQ提供者?@arekzyla:否:在
GroupBy
的情况下,由于
GroupedEnumerable
()将
计数作为一个简单的property@DmitryBychenko是的,但是使用LINQ不应该考虑甚至不知道任何关于实现细节的事情,因为它是声明性语言,所以在这个抽象级别上,我的表达式应该更高效(更少的迭代)。考虑OP WAY将其更改为<代码>组。其中(…).CONTUTE()<代码> >代码>!group.Skip(1)。任何()efficient@arekzyla对于哪个LINQ提供者?@arekzyla:否:在
GroupBy
的情况下,由于
GroupedEnumerable
()将
计数作为一个简单的property@DmitryBychenko是的,但是使用LINQ不应该考虑甚至不知道任何关于实现细节的事情,因为它是声明性语言,所以在这个抽象级别上,我的表达式应该更高效(更少的迭代)。考虑OP WAY将其更改为<代码>组。其中(…).CONTUTE()<代码>