如何从Dictionary <string,string>?</string,string>中删除空元素

时间:2013-12-12 17:20:34

标签: c#-4.0 dictionary

我想从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]'.

还有其他方法吗?

2 个答案:

答案 0 :(得分:3)

问题出在分配中而不是在Where调用中。

 MyDict = MyDict.Where(item => !string.IsNullOrEmpty(item.Value))
                .ToDictionary(i => i.Key);

答案 1 :(得分:0)

Where()会返回IEnumerable。过滤后,您需要在.ToDictionary()上致电IEnumerable以获得Dictionary