我们怎么能写一个linq来只返回一个表 2 b 应比较两个表并返回第一行
答案 0 :(得分:2)
听起来像是:
var query = table2.Where(data => !table1.Select(x => x.ID).Contains(data.ID));
或者获得第一行:
var first = table2.Where(data => !table1.Select(x => x.ID).Contains(data.ID))
.First();
请注意,LINQ to Objects中的内容相对较慢 - 您需要:
HashSet<int> ids = new HashSet<int>(table1.Select(x => x.ID));
var query = table2.Where(data => !ids.Contains(data.ID));
第一个应该是LINQ to SQL之类的东西。
答案 1 :(得分:0)
我不完全理解这个问题 - 但是你会做一些像
这样的事情
var t1 = new[] {1, 2, 3};
var t2 = new[] {1, 4, 3};
var res = t2.Where(x => !t1.Contains(x));