gpt4 book ai didi

c# - 使用 LINQ 从一个集合中查找不在另一个集合中的所有键?

转载 作者:太空狗 更新时间:2023-10-29 18:15:32 24 4
gpt4 key购买 nike

我试图找到一个词典中不在另一个词典中的所有键。显然,我可以使用嵌套循环来完成此操作,但我目前正在尝试学习 LINQ,我想知道我是否可以使用它来完成此任务?

这是我目前所拥有的:

Dictionary<string, List<string>> DBtables = this.CollectTableListings();
var generic = from Dictionary<string,List<string>> tab
in DBtables
where !_tables.ContainsKey(???)
select tab;

知道应该用什么来代替问号(或者可能代替整个 where 子句)吗?

最佳答案

你可以这样做:

var resultKeys = DBTables.Keys.Except( _tables.Keys );

Except()方法本质上与 SQL 中的 minus 操作相同 - 它返回第一个集合中的所有项目,不包括第二个集合中的项目。由于字典公开了它们的键,因此您可以通过这种方式计算它们的差异。

Except() 运算符使用类型的默认相等性,但还有一个重载允许您指定自己的 IEqualityComparer 来覆盖如何比较值的语义。在您的示例中,您可能不需要它 - 但很高兴在那里知道它。

关于c# - 使用 LINQ 从一个集合中查找不在另一个集合中的所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3260107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com