4
A
回答
12
var foo = dictionary
.Where(f => f.Value.Count > 0)
.ToDictionary(x => x.Key, x => x.Value);
這將創建一個新的字典。如果你想在原地移除,喬恩的答案將會成功。
10
好吧,如果你需要就地執行此操作,您可以使用:
var badKeys = dictionary.Where(pair => pair.Value.Count == 0)
.Select(pair => pair.Key)
.ToList();
foreach (var badKey in badKeys)
{
dictionary.Remove(badKey);
}
或者,如果你很高興創造了新字典:
var noEmptyValues = dictionary.Where(pair => pair.Value.Count > 0)
.ToDictionary(pair => pair.Key, pair => pair.Value);
請注意,如果您有機會改變字典的構建方式,則可以考慮通過ToLookup
方法創建ILookup
。這通常比字典中的每個值都是列表簡單,即使它們在概念上非常相似。查找具有很好的功能,如果您要求缺席密鑰,您會得到一個空序列,而不是一個例外或空引用。
0
替代方案僅供參考。
或者(並且完全取決於您的使用情況),請在修改列表內容時立即修改列表內容,而不是在特定時間點批量修改列表內容。在這樣的時刻很可能你會知道的關鍵,而不必重複:
var list = dictionary[0];
// Do stuff with the list.
if (list.Count == 0)
{
dictionary.Remove(0);
}
其他的答案解決需要做的ad-hoc在整個字典。
相關問題
- 1. Python - 從字典列表中刪除具有空值的字典
- 2. 從字典列表中刪除空格
- 3. 從字典中的列表中刪除項目
- 4. 從嵌套字典中刪除項目
- 5. 如果值爲零,則從庫存(字典)中刪除項目
- 6. Python3刪除字典鍵如果列表中的值爲空
- 7. 從字典值中刪除元素(列表的列表)
- 8. 從陣列列表中刪除項目
- 9. Groovy中刪除從列表空項
- 10. 刪除列表或字典中的重複項目
- 11. 從列表中刪除項目不從RecyclerView中刪除它們?
- 12. 列表中刪除項目
- 13. 從值列表中刪除空
- 14. 從列表視圖中刪除項目
- 15. Python從列表中刪除項目
- 16. 從列表框中刪除項目
- 17. 從方案列表中刪除項目
- 18. 從列表中刪除項目jquery li
- 19. 從列表中刪除項目Ionic
- 20. 從數組列表中刪除項目
- 21. Android Firebase從列表中刪除項目
- 22. 從列表中刪除項目
- 23. Python - 從列表中刪除項目
- 24. 從列表中刪除項目?
- 25. 未從列表中刪除的項目
- 26. 無法從列表中刪除項目?
- 27. 從列表中刪除項目RemoveAll
- 28. 從通用列表中刪除項目
- 29. 從列表中刪除項目
- 30. 從列表中刪除一個項目
@ClaudioRedi - 謝謝,我剛剛注意到這個錯誤。 :) – 2013-05-02 14:40:45
我會改變'f.Value.Count> 0'到'f.Value.Any()' – bnu 2017-02-02 13:45:52