如何使用 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);
如何将结果作为字典从相同类型返回 [<int,string>
]?
我试过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