[英]Using Linq to group objects that contain a list field
我有一个类,我们将其命名为MyClass,其公共字段的类型为IList<AnotherType>
:
class MyClass
{
public IList<AnotherType> MyListProperty {get;}
}
我的应用程序中还有MyClass对象的列表:
list = new List<MyClass>();
我想从此“列表”中获得一个组,特别是使用Linq的IOrderedEnumerable<IGrouping<MyClass,AnotherType>>
,该组将用作CollectionViewSource的源,并作为分组的ListView显示给用户。 我怎样才能做到这一点?
换句话说,我想将“列表”合并为一组可枚举的组,其键为MyClass
实例,值为MyClass.MyListProperty
。
如果我正确地理解了您,那么您正在寻找以下内容:
list.SelectMany(x => x.MyListProperty.GroupBy(y => x));
这将返回IEnumerable<IGrouping<MyClass, AnotherType>>
。 要使其成为IOrderedEnumerable
,您需要添加.OrderBy(x => x.SomeOrderingProperty);
在末尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.