回答
您可以將您想要,然後拿到第一個值匹配(或全部)特定領域的詞典:
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. 過濾linq名單的財產價值
- 6. 做一本字典和財產
- 7. 根據價值
- 8. 如何根據價值獨特的字典?
- 9. python字典對象vs值
- 10. 從字典<字符串,對象>不拆箱獲取價值?
- 11. JPQL根據財產從不相關的實體從回購
- 12. 如何根據SAS中的財政年度計算周價值?
- 13. 字典Python3。更新字典的價值
- 14. 根據其價值
- 15. 如何從字典中獲得價值..?
- 16. 從字典中獲取價值
- 17. 從字典中獲取價值
- 18. 從字典中獲得最大價值
- 19. 的Linq:轉換對象的名單字典,與對象成員作爲價值
- 20. 初始化對象的私有財產
- 21. 試圖讓非對象的財產laravel
- 22. 與存儲非財產對象
- 23. JavaScript對象方法返回null財產
- 24. 訪問與對象屬性「$ {}財產」
- 25. 結合對象不是財產
- 26. Python根據列中的匹配值從字典中寫入值
- 27. 組字典由價值
- 28. 按價值排序字典?
- 29. 按價值排序字典
- 30. 按價值排序字典
字典的概念是類型1 /鍵包含唯一的ID – fubo
我想刪除具有相同Value.id所有條目,並保持只有一個 –
什麼是選擇該副本,以保持標準?如果我們有兩個條目:<1,"abc">和<2, "abc">,我們取出一個用鑰匙1或2? – Gerino