回答
您可以將您想要,然後拿到第一個值匹配(或全部)特定領域的詞典:
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