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

Posted

技术标签:

【中文标题】如何使用 LINQ 过滤字典并将其返回到相同类型的字典【英文标题】:How can I filter a dictionary using LINQ and return it to a dictionary from the same type 【发布时间】:2010-10-21 15:13:39 【问题描述】:

我有以下字典:

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

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

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

如何将结果作为字典从相同类型返回 [&lt;int,string&gt;]?

我试过ToDictionary,但没用。

【问题讨论】:

以后,如果您尝试了明显的方法但发现它不起作用,请发布您尝试过的代码。 【参考方案1】:

ToDictionary 是要走的路。它确实工作 - 你只是使用不正确,大概。试试这个:

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

话虽如此,我假设您真的想要一个不同的 Where 过滤器,因为您当前的过滤器只能找到一个键...

【讨论】:

以上是关于如何使用 LINQ 过滤字典并将其返回到相同类型的字典的主要内容,如果未能解决你的问题,请参考以下文章

如何使用条件过滤字典值列表

使用 Linq 的 Where/Select 过滤掉 null 并将类型转换为不可为 null 不能做成扩展方法

通过使用 LINQ 和 MVVM 过滤两个相同类型的 ObservableCollection 创建一个 ObservableCollection

DataGridVIew 填充匿名类型,如何过滤?

Linq:按计算结果过滤并重用此结果

使用 LINQ 按值过滤字典时遇到问题