2013-02-12 29 views
-1

比方說,我有這樣一個類的列表(編輯,更相當於原碼):ThenBy()不特定的條件下工作

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

現在,如果我們有這個類的列表,讓我們稱之爲_fooList,它包含兩個Foo對象,其中一個包含01/01/01dtprop2enum,和另一個01/01/01dtprop1enum,按照這個順序。 現在,如果我OrderByDateTime首先,它保持相同,但然後,當我按FooEnum排序時,它仍然保持不變,即使Foo應包含prop1應該是第一個。這有什麼解釋嗎?

(注意:這是我的問題的一個真正概括的版本)。

+11

我們展示你的代碼。 – SLaks 2013-02-12 21:23:11

+2

而不是用言語解釋你在做什麼,爲什麼不把我們的代碼給我們,我們可以自己重現你的問題? – 2013-02-12 21:24:17

+0

嗯,我會的,但它需要約250行支持代碼... – 2013-02-12 21:29:10

回答

4

嘗試了這一點,並告訴我,如果它的工作原理:

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

這樣做的工作...但是一些等效的代碼沒有。奇怪... – 2013-02-12 21:28:18

+2

你確定你將它重新分配給_fooList嗎?爲什麼不發佈LINQ代碼,我們可以看看? – IronMan84 2013-02-12 21:28:38

+0

是的,我保留一個IOrderedEnumerable,然後我做一些條件(我可能需要根據其他代碼調用sortby/thenby在不同的屬性上),但是我在最後重新分配它。 – 2013-02-12 21:30:20