回答
您可以将您想要,然后拿到第一个值匹配(或全部)特定领域的词典:
Dictionary<Type1, Type2> d = new Dictionary<Type1, Type2>();
var entriesToBeRemoved = d.GroupBy(x => x.Value.SomeId)
.SelectMany(x => x.Skip(1))
.ToList()
;
foreach (var kvp in entriesToBeRemoved)
{
d.Remove(kvp.Key);
}
或者,如果你不在乎创造结果的新字典:
Dictionary<Type1, Type2> d = new Dictionary<Type1, Type2>();
var d2 = d.GroupBy(x => x.Value.SomeId)
.ToDictionary(x => x.First().Key, x => x.First().Value)
;
,因为他需要一个不同的值,同时保留键 –
这个伎俩。谢谢! (看起来太复杂寿:))我也想通了,它需要g.First()键,而不是g.Key –
难道不应该是'.ToDictionary(X => x.First()。重点,x => x.First()。Value)'?否则'd2'是'Dictionary
,你需要这应该工作正是:
var removables =
dict
.ToLookup(x => x.Value.ID, x => x.Key)
.SelectMany(x => x.Skip(1))
.ToArray();
foreach (var key in removables)
{
dict.Remove(key);
}
如果您执行'ToList'而不是'ToArray',则可以使用'List
@ LasseV.Karlsen - 还有一个'Array.ForEach(...)'方法。我很想使用那个,但我觉得在这种情况下,对于OP来说,一个简单的'foreach'会更好。 – Enigmativity
感谢您在我的回答中给予的帮助。 +1给你。 –
- 1. 不明财产价值
- 2. 字典与对象作为价值
- 3. 根据价值从字典中挑选随机条目
- 4. 添加数据源对象财产
- 5. 财产不能在对象
- 6. 查找财产的对象
- 7. 价值,原型和财产的区别
- 8. 关键价值财产帮助IOS
- 9. 使用ActionLink增加财产价值
- 10. 过滤linq名单的财产价值
- 11. 什么是价值(财产设置)?
- 12. 做一本字典和财产
- 13. 根据价值
- 14. 如何根据价值独特的字典?
- 15. Python中的财产返还财产对象
- 16. MVC - 显示根据用户的财产
- 17. Lodash orderBy根据财产儿童数
- 18. python字典对象vs值
- 19. 从字典<字符串,对象>不拆箱获取价值?
- 20. 如何增加谷歌数据存储的财产价值?
- 21. 如何从基类中获取财产价值?
- 22. 如何给财产从另一个类的价值
- 23. 如何从列表中获取特定财产的价值?
- 24. JPQL根据财产从不相关的实体从回购
- 25. 如何根据SAS中的财政年度计算周价值?
- 26. 字典Python3。更新字典的价值
- 27. 根据其价值
- 28. 如何保存有价值的字典作为对象
- 29. 从字典中获取价值
- 30. 如何从字典中获得价值
字典的概念是类型1 /键包含唯一的ID – fubo
我想删除具有相同Value.id所有条目,并保持只有一个 –
什么是选择该副本,以保持标准?如果我们有两个条目:<1,"abc">和<2, "abc">,我们取出一个用钥匙1或2? – Gerino