检查ICollection中是否有任何对象具有相同ID值的方法

本文关键字:ID 方法 对象 ICollection 是否 任何 检查 | 更新日期: 2023-09-27 18:31:55

我有一个对象是ICollection type()。我想检查此对象是否有相同的 ID 值。如果有相同的ID,我希望合并两个不同项目的属性。

我怎么能做到?

检查ICollection中是否有任何对象具有相同ID值的方法

我不得不对你的具体情况做出一些假设。 但是假设存储在ICollection中的数据类型看起来像这样。

public class Data
{
    public int ID { get; set; }
    public string Value { get; set; }
}

然后你可以使用一些 linq 并做这样的事情。

List<Data> data = new List<Data>
{
        new Data { ID = 0, Value = 3.2m },
        new Data { ID = 1, Value = 6.9m },
        new Data { ID = 2, Value = 9.4m },
        new Data { ID = 3, Value = 2.1m },
        new Data { ID = 4, Value = 8.4m },
        new Data { ID = 5, Value = 1.1m },
        new Data { ID = 0, Value = 6.8m }
};
List<Data> dupe = (
    from d in data
    group d by d.ID into g
    where g.Count() > 1
    select new Data { ID = g.Key, Value = g.Select(v => v.Value).Sum() }).ToList();
data.RemoveAll(d => dupe.Select(v => v.ID).Contains(d.ID));
data.AddRange(dupe);