LINQ:检查字段(db)是否包含ILIST中的项目?

mar*_*ith 2 c# linq extension-methods linq-to-sql

我正在尝试创建一个扩展方法,我可以转发IList状态并检查它们存在的天气,我认为最好的方法是做一个ILIST - 但也许我错了?这是将多个项目传递给方法的最佳方法 - 列表吗?它是一个通用的LIST,因此没有来自Object的转换等.

基本上我把它作为签名.

    public static IQueryable<Building> WithStatus(this IQueryable<Building> qry,
          IList<BuildingStatuses> buildingStatus)
    {

        //PSUEDO CODE 
        //return from v in qry
        //       where v.Status is IN MY LIST called buildingStatus
        //       select v;
    }
Run Code Online (Sandbox Code Playgroud)

并且我使用它来调用它(下面的示例是在我的TDD中),它在我上面的方法中得到的值很大.

    target.GetBuildings().WithStatus(new List<BuildingFilters.BuildingStatuses>() 
           { BuildingFilters.BuildingStatuses.Available,
             BuildingFilters.BuildingStatuses.Decommissioned });
Run Code Online (Sandbox Code Playgroud)

所以基本上我有我的列表(IList)它到达扩展方法有2个值很好,但需要在LINQ说我需要说

        return from v in qry
               where v.Status is IN MY LIST called buildingStatus
               select v;
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,

关于我的扩展方法,它工作,因为我做了类似1但只传递类型BuildingStatus因此只有1 ...

Joh*_*ker 5

这会对你有用吗:

return from v in qry
       where buildingStatus.Contains(v.Status)
       select v;
Run Code Online (Sandbox Code Playgroud)