首页 > 解决方案 > 带有对象列表的 LINQ Where 查询

问题描述

我有一个具有属性 ID 的对象 ListA 列表,我必须在具有列 ID 的表中进行查询,并找到 ID 相同的行。我如何通过单个查询而不是 listA 的 foreach 循环来实现这一点?

感谢您的时间

foreach(var object in listA)
{
  context.Table.Where(x => x.id == object.Id)....
}

标签: c#listlinqentitywhere-clause

解决方案


看起来您希望从表中返回 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; }
}

推荐阅读