Hig*_*une 6 c# linq nhibernate
我想通过LINQ对C#中的对象列表进行排序,我想通过具有特定属性的子列表来排序此列表:基于nhibernate的类结构,所有属性都是公共虚拟的.
ParentobjectsList.OrderBy(x => x.ChildobjectList.Attribute);
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这个.
听起来你的结构是这样的:
class ChildObject
{
public int Attribute { get; set; }
}
class ParentObject
{
public IEnumerable<ChildObject> ChildobjectList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不可能简单地按属性排序IEnumerable<ParentObject>
,ChildObject.Attribute
因为每个 可能有很多值ParentObject
。Linq 如何知道使用哪个值进行排序?您必须使用某种聚合函数。有很多选择,但这里只是其中一些:
Max
按最大元素排序ChildobjectList
Min
按最小元素排序ChildobjectList
First
按第一项排序ChildobjectList
Sum
按值的总和排序,假设 的类型Attribute
可以求和具体使用哪一种取决于您的具体要求。无论如何,你都会像这样使用它:
var result =
ParentobjectsList.OrderBy(x => x.ChildobjectList.Max(c => c.Attribute));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1891 次 |
最近记录: |