Linq Where list包含另一个列表中的项目

本文关键字:项目 列表 另一个 Where list 包含 Linq | 更新日期: 2023-09-27 18:25:10

给定以下结构

public class WorkOrderItem 
{
    [Key] 
    public long WorkOrderItemId { get; set; }
    public virtual ICollection<Job> Jobs { get; set; }      
}
public class Job 
{
    [Key]
    public long JobId { get; set; }
    public long? WorkOrderItemId { get; set; }
    public virtual Item Item { get; set; }
    public virtual Element ResultElement { get; set; }
}

如何获取项目列表,其中该项目具有ResultElementid位于List<long>()中的作业?

Linq Where list包含另一个列表中的项目

您可以使用Any+Contains:

var query = workOrderItems
    .Where(item => item.Jobs.Any(j => longList.Contains(j.ResultElement.Id)));

(假设类Element具有Id属性,因为您已经声明了ResultElementid