如何在c#中提取字典的子集到另一个子集
本文关键字:子集 另一个 字典 提取 | 更新日期: 2023-09-27 18:19:03
我想过滤掉一些不需要进一步处理的字典对。查看下面的示例代码:
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>>
,但我希望onlystring具有以下对(源字典的子集):
- 键:"string1",值:"One"
- 键:"string2",值:"Two"
- 键:"string3",值:"Three"
得到这样结果的最好方法是什么?
ToDictionary方法有一个重载,它也允许一个elementSelector委托:
var onlyStrings = source.Where(s => s.Key != "number")
.ToDictionary(dict => dict.Key, dict => dict.Value);