代码之家  ›  专栏  ›  技术社区  ›  Homam

如何使用LINQ筛选字典并将其返回到同一类型的字典

  •  70
  • Homam  · 技术社区  · 14 年前

    我有以下字典:

    Dictionary<int,string> dic = new Dictionary<int,string>();
    dic[1] = "A";
    dic[2] = "B";
    

    我要筛选字典项并将结果重新分配给同一个变量:

    dic = dic.Where (p => p.Key == 1);
    

    我怎样把结果作为同一类型的字典返回呢[ <int,string> ?

    我试过 ToDictionary 但是不起作用。

    事先谢谢。

    1 回复  |  直到 14 年前
        1
  •  154
  •   Jon Skeet    14 年前

    ToDictionary 是前进的道路。它 工作-你只是不正确地使用它,大概吧。试试这个:

    dic = dic.Where(p => p.Key == 1)
             .ToDictionary(p => p.Key, p => p.Value);
    

    既然这么说了,我想你 真正地 想要不同的 Where 筛选,因为您当前的只能找到一个密钥…