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


83

我有以下字典:

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

我想过滤字典中的项目并将结果重新分配给相同的变量:

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

如何将相同类型[ <int,string>]的结果作为字典返回?

我试过了ToDictionary,但是没有用。

提前致谢。


11
将来,如果您尝试了显而易见的方法,但发现它不起作用,请发布您尝试过的代码。
乔恩·斯基特

Answers:


189

ToDictionary是要走的路。它确实起作用-您可能是错误地使用了它。试试这个:

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

话虽如此,我认为您确实想要一个不同的Where过滤器,因为您当前的过滤器只会找到一个键...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.