C#如何使用Linq根据Value的类型查询Dictionary的条目子集?

时间:2013-12-05 06:04:17

标签: c# linq dictionary types

在C#中使用Linq,是否可以根据Value的类型提取Dictionary的条目子集,并将其作为一个字典转换为该类型的值?

基本上,如果你有一个像这样的词典:

Dictionary<string, Object> Data;

然后你可以这样做:

Dictionary<string, int> IntData = Data.Query();

这样新的Dictionary就会获得Value为Type int的所有e​​ntires。这可能吗?

2 个答案:

答案 0 :(得分:6)

Dictionary<string, int> IntData = Data.Where(k => k.Value is int)
   .ToDictionary(kv => kv.Key, kv => (int) kv.Value);

答案 1 :(得分:1)

试试这个:

Dictionary<string, int> IntData = Data
.Where(q => q.Value.GetType() == typeof(int))
.ToDictionary(q => q.Key, q => (int)q.Value);