我有一个本地的ID列表,我需要在DB.Table
中检查此ID的存在。
我写了以下代码:
List<int> localIdList;
//filling localIdList
var idArrayFromDb = DB.Table
.Select(s => s.ID)
.ToArray();
bool isSubset = !localIdList
.Except(idListFromDb)
.Any();
目前它运作良好,但我认为这不是解决这个问题的最佳方法。
所以我想知道,如果不收集数据库中的ID或更好的方法,我可以这样做吗?
答案 0 :(得分:0)
执行此操作的一种方法是使用List&lt;&gt;的Contain()方法。
bool isSubset = DB.Table.Where(s => localIdList.Contains(s)).Any();
@CodeCaster 1提到的一个drawback是它将受localIdList长度的限制。
答案 1 :(得分:-1)
试试这个
//sample
List<int> t1 = new List<int>();
t1.Add(1);
t1.Add(2);
t1.Add(3);
List<int> t2 = new List<int>();
t2.Add(2);
bool res = t2.Any(a => t1.Any(b => b == a));
Console.WriteLine("res :" + res);
// your solution here
bool isSubset = DB.Table.Any(s => localIdList.any(l=> l == s.ID));