我有一个有6条记录的ilist,就像这样
第一行
时间 11:00
位置:
班加罗尔
第二排 时间 11:00
地点 NULL
...
我必须消除第二行 其位置同时为null(11:00)
像这样,我将有成千上万的记录,我需要从中消除这一点。
任何解决方案?
答案 0 :(得分:4)
您可以执行以下操作:
list.GroupBy(x=>x.Time)
//from the grouped items select the first one that doesn't have an empty location - you'll have null here if none is found
.Select(x=>x.FirstOrDefault(y=>!string.IsNullOrEmpty(y.Location)))
.ToList()
答案 1 :(得分:1)
public List<Row> GetRowsWthoutDuplicates(List<Row> source)
{
List<Row> filteredRows = new List<Row>(source);
foreach (Row row in source)
{
if (!filteredRows.Exists(r => r.Time == row.Time))
{
filteredRows.Add(row);
}
}
return
filteredRows;
}
答案 2 :(得分:0)
您也可以简单地执行“for”语句,并删除不符合条件的元素(每当执行删除时,步骤变量都会小心地“不递增”)。