我想过滤掉一些我不需要进一步处理的字典对。检查此示例代码:
static void Main(string[] args)
{
var source = new Dictionary<string, dynamic>();
source.Add("number", 1);
source.Add("string1", "One");
source.Add("string2", "Two");
source.Add("string3", "Three");
var onlyStrings = source.Where(s => s.Key != "number").ToDictionary(s => s.Key);
}
在这种情况下,onlyStrings只是Dictionary<string, KeyValuePair<string, object>>
但我希望只有字符串具有以下对(源字典的子集):
获得此类结果的最佳方式是什么?
答案 0 :(得分:26)
ToDictionary方法有一个重载,它也允许使用elementSelector委托:
var onlyStrings = source.Where(s => s.Key != "number")
.ToDictionary(dict => dict.Key, dict => dict.Value);