【问题标题】:How can I extract a subset of a dictionary into another one in C#?如何在 C# 中将字典的子集提取到另一个字典中?
【发布时间】:2013-06-20 01:45:32
【问题描述】:

我想过滤掉一些不需要进一步处理的字典对。查看此示例代码:

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&lt;string, KeyValuePair&lt;string, object&gt;&gt;

但我希望 onlyStrings 具有以下对(源字典的子集):

  • 键:“string1”,值:“一”
  • 键:“string2”,值:“二”
  • 键:“string3”,值:“三”

获得这种结果的最佳方法是什么?

【问题讨论】:

    标签: c# c#-4.0


    【解决方案1】:

    ToDictionary 方法有一个重载,它也允许 elementSelector 委托:

    var onlyStrings = source.Where(s => s.Key != "number")
                            .ToDictionary(dict => dict.Key, dict => dict.Value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2018-07-27
      • 2019-03-17
      • 1970-01-01
      • 2022-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多