2011-12-01 50 views
1

我有一個通用的清單,並已完成將項目添加到列表<> sorts it?

mylist.Sort(Comparison<TypeA>(delegate(TypeA a, TypeA b) 
{ return a.Text.CompareTo(b.Text)) } 

上面運行後,我做mylist.Add(someObject)。這是Text屬性以「T」開始。列表中還有一個以"V"開頭的項目。它不是最後添加的某個對象,而是在從"V"開始的項目之前。這讓我覺得這種排序繼續適用。是這樣嗎?

如果是這樣,我該如何添加這個新項目作爲最後?

+4

你可以添加一個簡短但完整的程序來演示問題嗎? – dtb

+2

不,這不是這種情況。 '列表'不是自然排序的。 –

回答

5

這絕對是錯誤的。 List<>.Sort執行一次排序,並添加額外的項目將它們添加到最後。

此行爲僅在mylistSortedList或類似情況時纔可能。如果你沒有自己初始化它,你應該檢查運行時類型,因爲即使編譯時類型可能是IList,你可能會得到SortedList。但這是不太可能的。