Linq 基于字符串数组变量搜索列表的属性

问题描述 投票:0回答:1

我有

IQueryable
Gizmo

我想编写 LINQ 语句来过滤颜色在我传递的参数 (

string[]
) 中的所有 Gizmos。

例如:

public class Gizmo
{
      public string Id { get; set; }

      public string Name { get; set; }

      public virtual ICollection<Color> Colors { get; set; } = new List<Color>();
}

public class Color
{
      public string Id { get; set; }
      public string Value { get; set; } 
}

我将获得一个参数,例如:

var filterColors = new[] { "red", "silver" };

我想写一些类似的东西:

gizmos = gizmos.Where(x => x.ColorTags.Contains(filterColors));
c# linq
1个回答
2
投票

看来您正在寻找:

gizmos = gizmos.Where(x => filterColors.Any(z => x.Colors.Any(e => e.Value == z)));
© www.soinside.com 2019 - 2024. All rights reserved.