我试图找到一个字典中不在另一个字典中的所有键.显然,我可以使用嵌套循环来做到这一点,但我现在正在尝试学习LINQ,我想知道是否可以使用它来完成这项任务?
这是我到目前为止所拥有的:
Dictionary<string, List<string>> DBtables = this.CollectTableListings();
var generic = from Dictionary<string,List<string>> tab
in DBtables
where !_tables.ContainsKey(???)
select tab;
Run Code Online (Sandbox Code Playgroud)
任何想法应该代替问号(或者可能代替整个where子句)?
LBu*_*kin 11
你可以做:
var resultKeys = DBTables.Keys.Except( _tables.Keys );
Run Code Online (Sandbox Code Playgroud)
该Except()方法与minusSQL中的操作基本相同- 它返回第一个集合中的所有项目,不包括第二个集合中的项目.由于字典暴露了它们的键,你可以用这种方式计算它们之间的差异.
该Except()操作员使用该类型的默认相等,但也有过载,它允许你指定你自己的IEqualityComparer覆盖的如何比较值的语义.在你的例子中,你可能不需要 - 但在那里知道它很好.
| 归档时间: |
|
| 查看次数: |
4577 次 |
| 最近记录: |