2010-10-21 76 views
60

我有以下的解释:如何过滤字典使用LINQ和它同类型的返回字典

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

我要筛选的字典的项目,并重新分配结果相同的变量:

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

如何返回结果作为字典从同一类型[<int,string>]?我试过ToDictionary,但它不起作用。

在此先感谢。

+7

在未来,如果你已经尝试显而易见的方法,但发现它不起作用,请张贴你试过的代码。 – 2010-10-21 15:28:30

回答

127

ToDictionary是要走的路。它确实工作 - 你只是错误地使用它,据推测。试试这个:

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

说了这么多,我想你真的不同Where过滤器,作为当前一个仅会发现一个键......

+0

谢谢你,乔恩。你说得对,我错误地使用了它。 – Homam 2010-10-21 15:36:17