我有一个SQL表:
Id FirstName LastName DateTime
1 John Doe 2016-09-27 20:45:52.293
2 John Doe 2016-09-27 20:45:53.620
3 John Doe 2016-09-27 20:46:02.370
4 John Doe 2016-09-27 20:46:02.533
5 John Doe 2016-09-27 20:46:02.680
6 John Doe 2016-09-27 20:46:02.820
一个List<Int>
:
List<int> ids = new List<int>(){ 2, 3, 5 }
我使用Linq To Sql类来获取我的sql表中的所有记录。我这样做:
using(DataClassesDataContext Context = new DataClassesDataContext())
{
var Customers = Context.Customers;
}
我想知道列表中的所有ID是否都存在于表中,如果没有,请找出不存在的行
这样做的最佳方式是什么?
答案 0 :(得分:0)
您可以使用LINQ
中的Any
查找所有缺少的客户详细信息
var missingCustomers = Customers.Where(c => !ids.Any(i => i == c.Id)).ToList();
答案 1 :(得分:0)
&#34;我想知道列表中是否存在列表中的所有ID,如果没有,请找出不存在的行&#34;
要查明表格中是否存在所有列表中的ID:
bool check = ids.All(i => Customers.Select(s => s.Id).Contains(i));
要了解哪些客户不存在(与此处的其他答案类似):
var missingCustomers = Customers.Where(c => !ids.Contains(c.Id)).ToList();
修改强>
反过来(在表中找到缺少的ID):
var allTableIds = Customers.Select(s => s.Id).ToList();
var missingCustomersIDs = ids.Where(c => !allTableIds.Contains(c)).ToList();