基于集合

时间:2016-12-12 14:35:43

标签: 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")
                   );

如何编写正确的查询?

提前谢谢!

2 个答案:

答案 0 :(得分:6)

如果您想将所有红色项目都纳入您的结果

String selectAll = Keys.chord(Keys.CONTROL, "a");
WebElement element = driver.findElement(By.cssSelector(".notebook-rte-prompt.active .rte-editbox"));
element.click();
element.sendKeys(selectAll);

应该是

.Where(x => x.custom_fields.Where(y => y.Name == "color").Any(z => z.Value == "red"));

答案 1 :(得分:3)

假设项目为IEnumerable<T>

var redItems = 
    from item in items
    from custom_field in items.custom_fields
    where custom_field.Name == "color" && custom_field.Value == "red"
    select item;