如何使用LINQ过滤字典并将其返回到相同类型的字典

时间:2010-10-21 15:13:40

标签: c# linq dictionary linq-to-objects

我有以下字典:

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 个答案:

答案 0 :(得分:158)

ToDictionary是要走的路。它 工作 - 大概是你错误地使用它了。试试这个:

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

话虽如此,我假设你真的想要一个不同的Where过滤器,因为你现在的过滤器只能找到一个密钥......