从具有重复项的列表创建字典
本文关键字:列表 创建 字典 | 更新日期: 2023-09-27 18:12:03
我的情况是,我有一个List<MyObject>
和MyObject
有一个属性ID
。我想用这个列表制作一个字典:
var myDic = MyList.ToDictionary(e => e.ID);
问题是有时我有一些重复的ID。在这种情况下,我希望将第一个项目存储到字典中,并忽略其余的项目,并在可能的情况下对跳过的项目进行某种通知。
现在我得到一个异常告诉我,我有重复的键在我的列表,但我不能/不想修改原始列表。有没有一种方法可以在不创建没有重复id的新列表的情况下执行任务?
var myDic = MyList.ToLookup(x => x.ID)
.ToDictionary(x => x.Key, x => x.First());
先按属性分组,然后你可以从组中取出第一个/最后一个/随机/任何你想要的值。
var dictionary = list.GroupBy(item => item.ID)
.ToDictionary(group => group.Key, group => group.First());