我有一个列表,其中还包含一个包含一些对象的列表:
var elements = new List<ElementGroup>()
{
new ElementGroup("WIRES")
{
new Element() {Name = "Wires", Image = "wires.jpg"}
},
new ElementGroup("GROUND")
{
new Element() {Name = "Ground", Image = "ground.jpg"}
}
};
ElementGroup类:
public class ElementGroup : List<Element>
我想将Linq查询应用于所有Element
列表中的所有ElementGroup
个对象,但如果我这样做:
elements.Where(c => c.Family.Contains(searchText.ToUpper()));
它在ElementGroup
列表中应用查询。
答案 0 :(得分:0)
await C()
答案 1 :(得分:-1)
使用SelectMany来展平内部列表。
代码可能如下所示 elements.SelectMany(s =&gt; s.Elements)
你可以处理这个元素列表
编辑:
另外,考虑在ElementGroup中有一个元素列表而不是继承。然后使用SelectMany成为自然选择。