我试图解决这复杂的对象:排序依据的嵌套集合
Order _sut = new Order
{
OrderDataArray = new[]
{
new OrderData
{
OrderHeaderArray = new[]
{
new OrderHeader
{
SequenceNumber = 1,
OrderPositionArray = new[]
{
new OrderPositions
{
LineNumber = 3
},
new OrderPositions
{
LineNumber = 2
},
new OrderPositions
{
LineNumber = 1
}
}
}
}
}
}
};
使用代码:
[Fact]
public void Sorts_By_Sequence_Number()
{
var ordered = _sut.OrderDataArray
.OrderBy(o => o.OrderHeaderArray
.OrderBy(a => a.OrderPositionArray
.OrderBy(p => p.LineNumber)))
.ToArray();
_sut.OrderDataArray = ordered;
OutputHelper(_sut);
}
我不明白为什么这不工作,这意味着排序例程简单地保持对象的初始顺序为LineNumber
。我用OrderBy
尝试了各种各样的东西,但看起来好像没有排序。
编辑
谢谢你的回复,两者都是正确的。我接受了poke的回应,因为它提供了有关OrderBy方法内部运作的更详细信息。基本上我错过了循环内的任务,我试图一次对所有对象进行排序。
你究竟想要排序和按哪些属性? –