2013-02-12 1 views
-1

Скажем, у меня есть список класса, как это (под редакцией, гораздо более эквивалентен исходному коду):ThenBy() не работает в определенных условиях

public class Foo 
{ 
    public FooEnum enum; 
    public DateTime dt; 
    enum FooEnum 
    { 
     prop1 = 0, 
     prop2 = 1 
    } 
} 

Теперь, если у нас есть список этого класса , давайте назовем его _fooList, и он содержит два Foo объектов, один из которых содержит 01/01/01 для dt и prop2 для enum, а другой с 01/01/01 для dt и prop1 для enum, в таком порядке. Теперь, если I OrderByDateTime во-первых, это сохраняет то же самое, но тогда, когда я сортирую по FooEnum, он STILL остается неизменным, хотя Foo содержит prop1 должен быть первым. Есть ли объяснения для этого?

(Примечание: это РЕАЛЬНАЯ суммированная версия моей проблемы).

+11

Покажите нам код. – SLaks

+2

Вместо того, чтобы объяснять словами, что вы делаете, почему бы просто не дать нам код, чтобы мы могли сами воспроизвести вашу проблему? –

+0

Умм, я бы хотел, но ему нужно около ~ 250 строк поддерживающего кода ... –

ответ

4

Попробуйте это и скажите мне, если это работает:

_fooList = _fooList.OrderBy(f => f.someString).ThenBy(f => f.someInt).ToList(); 
+0

Это действительно работает ... однако какой-то эквивалентный код нет. Odd ... –

+2

Вы уверены, что переназначили его на '_fooList'? Почему бы вам не опубликовать код LINQ, и мы можем взглянуть? – IronMan84

+0

Да, я сохраняю IOrderedEnumerable, затем я выполняю некоторые условные обозначения (мне может потребоваться сортировать/затем по другим свойствам в зависимости от какого-либо другого кода), но я переназначаю его в конце. –

Смежные вопросы