我有一个非常复杂的Linq语句,有多个连接,但是我遇到了orderby语句的问题。
我想我可以稍微减少这个问题,但如果需要可以扩展。
首先,我的对象具有以下属性:
myObject.ID
这是一个基本的Int
myObject.BrandName
这是我的HashSet<string>
。
我需要使用最低或最高值按BrandName对我的对象进行排序,具体取决于我是按升序还是降序排序。
答案 0 :(得分:4)
所以你的意思是按照集合中的最小值或最大值排序?幸运的是,这很容易 - 即使它表现得相当糟糕:
orderby myObject.BrandName.Min()
或
orderby myObject.BrandName.Max() descending
(反之亦然,取决于你想要的顺序。)
答案 1 :(得分:1)
这对你有用吗?
// replace with mo.BrandName.Min() to sort the other way
Func<MyObject, string> getBrand = mo => mo.BrandName.Max();
var q = from myObject in myObjects
let b = getBrand(myObject)
orderby b
select myObject;