假设我的结构如下:
class A {
IEnumerable<B> BList {get;set;}
}
class B {
IEnumerable<C> CList {get;set};
int OrderId {get;set;}
}
class C {
int OrderId {get;set;}
}
我想返回一个As列表,它的BList是按照它的OrderId和该列表中每个B的顺序排列的, 它的CList也是由它的OrderId订购的。
这些是我与EF6一起使用的模型,而类A,B,C对应于db表。
我花了一些时间来尝试&#39; linq-ify&#39;这,但没有成功。它可行吗?
的副本答案 0 :(得分:2)
好的,因为没有人想回答,你现在不再添加更多内容是我现在的看法:
public static A SortEverything(A input)
{
return new A
{
BList =
input.BList
.Select(b =>
new B
{
OrderId = b.OrderId,
CList = b.CList.OrderBy(c => c.OrderId)
})
.OrderBy(b => b.OrderId)
};
}
返回一个{em>已排序的A
列表,其中包含一个输入列表/可枚举IEnumerable<A> input
,您只需要
var sorted = input.Select(SortEverything);
顺便说一句:你的班级有一些问题 - 当然你必须公开这些属性:
class A {
public IEnumerable<B> BList {get; set;}
}
class B {
public IEnumerable<C> CList {get; set; }
public int OrderId {get;set;}
}
class C {
public int OrderId {get;set;}
}