基于集合的LINQ选择

seb*_*vst 0 c# linq

我有一个关于c#和LINQ的问题:

我有一个可以有多个custom_fields(子)的类(父).custom_fields类有3个值:ID,Name,Value.

我想根据custom_field进行过滤.例如,custom_field颜色的值为红色的所有项目.

我对如何进行LINQ查询有点迷茫.我试过以下,但那是错的.

items = items.Where(x => x.custom_fields.Where(y => y.Name == "color")
                                        .Any(z => z.Value == "red")
                   );
Run Code Online (Sandbox Code Playgroud)

如何编写正确的查询?

先感谢您!

fub*_*ubo 6

如果您想将所有带红色的物品放入您的结果中

.Where(x => x.custom_fields.Where(y => y.Name == "color").Any(z => z.Value == "red"));
Run Code Online (Sandbox Code Playgroud)

应该

.Where(x => x.custom_fields.Any(y => y.Name == "color" && y.Value == "red"));
Run Code Online (Sandbox Code Playgroud)