c#Linq删除一项
我有一个包含对象的列表。对象的一个属性是from类型date,如果一个组只包含一个项目,我希望按日期分组并删除该项目 我的列表已按日期排序:c#Linq删除一项,c#,linq,C#,Linq,我有一个包含对象的列表。对象的一个属性是from类型date,如果一个组只包含一个项目,我希望按日期分组并删除该项目 我的列表已按日期排序: 01.01.2018 01.01.2018 02.01.2018 <- this one should be removed 03.01.2018 03.01.2018 我的问题是,2018年1月2日之后的每一项都会被删除。使用while,而不是TakeWhile: var listCleaned = myList.GroupBy(x =>
01.01.2018
01.01.2018
02.01.2018 <- this one should be removed
03.01.2018
03.01.2018
我的问题是,2018年1月2日之后的每一项都会被删除。使用
while
,而不是TakeWhile
:
var listCleaned = myList.GroupBy(x => x.WHEN.Date)
.Where(y => y.Count() > 1)
.SelectMany(i => i.ToList())
.ToList();
您可以尝试另一种方法:- 在这里,我添加了一个条件,即当
日期在集合中多次出现时,仅选择那些的对象
旁注:不需要SelectMany
中的ToList()
。
var listCleaned = myList.GroupBy(x => x.WHEN.Date)
.Where(y => y.Count() > 1)
.SelectMany(i => i.ToList())
.ToList();
var listCleaned = myList.Where(x => myList.Where(ele => ele.WHEN.Date == x.WHEN.Date).Count > 1).ToList();