Закажите HashSet в объекте в Linq - PullRequest
0 голосов
/ 08 января 2010

У меня довольно сложный оператор Linq с несколькими объединениями, но у меня проблема с оператором orderby.

Я думаю, что могу немного уменьшить вопрос, но при необходимости расширится.

Сначала мой объект имеет следующие свойства:

myObject.ID Это базовый Int

myObject.BrandName Это мой HashSet<string>.

Мне нужно отсортировать мой Объект по BrandName, используя самое низкое или максимальное значение в зависимости от того, сортирую я по возрастанию или по убыванию.

Ответы [ 2 ]

4 голосов
/ 08 января 2010

То есть вы имеете в виду порядок под минимальным или максимальным значением в наборе? К счастью, это легко - даже если это будет работать довольно плохо:

orderby myObject.BrandName.Min()

или

orderby myObject.BrandName.Max() descending

(или наоборот, в зависимости от того, какой порядок вы хотите.)

1 голос
/ 08 января 2010

Будет ли это работать для вас?

// 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;
...