在C#中使用Linq,是否可以根据Value的类型提取Dictionary的条目子集,并将其作为一个字典转换为该类型的值?
基本上,如果你有一个像这样的词典:
Dictionary<string, Object> Data;
然后你可以这样做:
Dictionary<string, int> IntData = Data.Query();
这样新的Dictionary就会获得Value为Type int的所有entires。这可能吗?
答案 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);