如何从IList中删除重复值,c#

时间:2010-11-17 05:31:06

标签: c# .net

我有一个有6条记录的ilist,就像这样

第一行

时间 11:00

位置:

班加罗尔

第二排 时间 11:00

地点 NULL

...

我必须消除第二行 其位置同时为null(11:00)

像这样,我将有成千上万的记录,我需要从中消除这一点。

任何解决方案?

3 个答案:

答案 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”语句,并删除不符合条件的元素(每当执行删除时,步骤变量都会小心地“不递增”)。