linq返回带有id列表的查询

时间:2015-06-12 15:15:28

标签: c# linq filter where contains

我正在做一个过滤器,我需要所有的值,例如(rock = id 3和jazz = id 6)

我如何在LINQ中执行此操作?

我这样做但是这首先给出了摇滚乐和爵士舞......

private IQueryable<Performance>addGenreFilterToPerformanceQuery(IQueryable<Performance> query, List<int> genreFilters)
{
    if (genreFilters != null)
    {
        foreach (var genreFilter in genreFilters)
        {
            return query.Where(p => p.Artist.Genres.Any(g => genreFilters.Contains(g.Id)));
        }
    }
    return query;
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

foreach并没有真正做任何事情。如果您希望查询与所有类型ID匹配而不是任何匹配,请使用All,而不是Any

return query.Where(p => p.Artist.Genres.All(g => genreFilters.Contains(g.Id)));
相关问题