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

Han*_*ans 2 c# linq dictionary types

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

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

Dictionary<string, Object> Data;
Run Code Online (Sandbox Code Playgroud)

你可以做一些像:

Dictionary<string, int> IntData = Data.Query();
Run Code Online (Sandbox Code Playgroud)

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

aqu*_*nas 6

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