我的情况是,我有一个List<MyObject>和MyObject有一个属性ID.我想从该列表中创建一个字典:
var myDic = MyList.ToDictionary(e => e.ID);
Run Code Online (Sandbox Code Playgroud)
问题是有时我有一些重复的ID.在这种情况下,我想将第一个项目存储到字典中并忽略其余项目,并在可能的情况下对跳过的项目进行某种通知.
现在我正在获取一个Exception,告诉我我的列表中有重复的键,但我不能/不想修改原始列表.有没有一种方法可以在不创建没有重复ID的新列表的情况下执行任务?
var myDic = MyList.ToLookup(x => x.ID)
.ToDictionary(x => x.Key, x => x.First());
Run Code Online (Sandbox Code Playgroud)
只需先按该属性对项目进行分组,然后就可以从该组中提取所需的第一个/最后一个/随机/任意值.
var dictionary = list.GroupBy(item => item.ID)
.ToDictionary(group => group.Key, group => group.First());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |