【发布时间】:2018-02-14 09:48:23
【问题描述】:
鉴于以下情况:
public class Data {
public bool Value1 { get; set; }
public bool Value2 { get; set; }
public int Value3 { get; set; }
}
var list = new List<Data> {
new Data { Value1 = true, Value2 = false, Value3 = 5}, // d1
new Data { Value1 = true, Value2 = true, Value3 = 10}, // d2
new Data { Value1 = false, Value2 = false, Value3 = 20}, // d3
new Data { Value1 = false, Value2 = true, Value3 = 30}, // d4
new Data { Value1 = false, Value2 = false, Value3 = 15} // d5
};
var orderedList = list.OrderByDescending(d => d.Value1).ThenByDescending(d => d.Value2).ThenBy(d => d.Value3);
我想要实现的是:d1 - d2 - d4 - d5 - d3
orderedList中的实际结果是:d2 - d1 - d4 - d5 - d3
这是因为d2、Value2 和 Value1 是true,所以这可能是有道理的。尽管如此,在这个用例中,我并不关心Value1 和Value2 是true。我想实现我所拥有的
- 首先是
Value1为真的所有对象,在那些由Value3 - 第二个
Value2为真的所有对象,在那些 由Value3订购 - 最后剩下的,由
Value3订购
有没有可能做到这一点?
【问题讨论】:
-
一切皆有可能,试图理解问题被证明是一个问题