由Linq中的对象中的HashSet排序

时间:2010-01-07 23:27:28

标签: c# asp.net linq-to-objects

我有一个非常复杂的Linq语句,有多个连接,但是我遇到了orderby语句的问题。

我想我可以稍微减少这个问题,但如果需要可以扩展。

首先,我的对象具有以下属性:

myObject.ID这是一个基本的Int

myObject.BrandName这是我的HashSet<string>

我需要使用最低或最高值按BrandName对我的对象进行排序,具体取决于我是按升序还是降序排序。

2 个答案:

答案 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;