我想从Dictionary中删除所有具有空值的元素。我尝试了以下内容:
MyDict = MyDict.Where(item => !string.IsNullOrEmpty(item.Value));
但是抛出异常:
Unable to cast object of type 'WhereEnumerableIterator' 1
[System.CollectionsGeneric.KeyVauePair' 2[System.String,System.String]]' to type
'System.Collections.Generic.Dictionary' 2[System.String,System.String]'.
还有其他方法吗?
答案 0 :(得分:3)
问题出在分配中而不是在Where调用中。
MyDict = MyDict.Where(item => !string.IsNullOrEmpty(item.Value))
.ToDictionary(i => i.Key);
答案 1 :(得分:0)
Where()
会返回IEnumerable
。过滤后,您需要在.ToDictionary()
上致电IEnumerable
以获得Dictionary
。