C# 使用Linq从列表中删除两个重复项(如果其中一个重复)
如何使用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
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()<代码>