Linq查询Dictionary <int,double =“”> type </int,>

时间:2010-09-25 03:01:31

标签: c# .net linq dictionary

我有一个类型Dictionary<int, double>的字典,想要消除等于某个值的值。

目前我有

Dictionary <int, double> dict = GetDictionary();
dict = dict.Where(x => x.Value != 100).Select(x => x);

我收到了错误:

无法将类型“System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,double>>”隐式转换为“System.Collections.Generic.Dictionary<int,double>”。存在显式转换(您是否错过了演员?)

如何使用Linq实现我想要做的事情?

1 个答案:

答案 0 :(得分:12)

使用LINQ:

var newDict = dict.Where(kvp => kvp.Value != 100)
                  .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

您收到编译错误的原因是Select是IEnumerable上的扩展名。对于Dictionary<TKey,TValue>,您正在处理IEnumerable<KeyValuePair<TKey,TValue>>