c# - 带有对象列表的 LINQ Where 查询
问题描述
我有一个具有属性 ID 的对象 ListA 列表,我必须在具有列 ID 的表中进行查询,并找到 ID 相同的行。我如何通过单个查询而不是 listA 的 foreach 循环来实现这一点?
感谢您的时间
foreach(var object in listA)
{
context.Table.Where(x => x.id == object.Id)....
}
解决方案
看起来您希望从表中返回 ID 包含在具有相同 ID 的对象列表中的所有行。下面将实现这一点。我可以修改我的答案以满足您的需要。如果您正在寻找稍微不同的东西,请告诉我。
void Main()
{
var listA = new List<A> { new A { Id = 1 }, new A { Id = 4 } };
var results = context.Table
.Where(t => listA.Select(l => l.Id).Contains(t.Id))
}
public class A
{
public int Id { get; set; }
}