How can I filter a dictionary using LINQ and return it to a dictionary from the same type

无人久伴 提交于 2019-12-18 10:31:28

问题


I have the following dictionary:

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

I want to filter the dictionary's items and reassign the result to the same variable:

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

How can I return the result as a dictionary from the same type [<int,string>] ?

I tried ToDictionary, but it doesn't work.

Thanks in advance.


回答1:


ToDictionary is the way to go. It does work - you were just using it incorrectly, presumably. Try this:

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

Having said that, I assume you really want a different Where filter, as your current one will only ever find one key...



来源:https://stackoverflow.com/questions/3988995/how-can-i-filter-a-dictionary-using-linq-and-return-it-to-a-dictionary-from-the

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!