Linq Where语句中如何判断一个列表是否包含另一个列表中的元素

5

考虑以下结构

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>()中?


2
可能是 https://dev59.com/R2gv5IYBdhLWcg3wVfd6 的重复问题。 - Patrick Hofman
1
你忘记添加 Element 类了,我假设它有一个 Id 属性。 - Tim Schmelter
1个回答

10
你可以使用 Any + Contains
var query = workOrderItems
    .Where(item => item.Jobs.Any(j => longList.Contains(j.ResultElement.Id)));

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


我总是会忘记一些重要的Linq方法,这次是Any()。干杯! - MrBliz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接