2012-03-11 79 views
2

我有一個List<object>,其中包含GuestbookEntry,CommentSectionEntry三種類型的實例。這三類具有共同的CreateDate屬性。通過公共屬性排序不同對象的列表

有沒有什麼辦法可以在給定屬性(我知道所有對象都有)的情況下對這個列表進行排序而不知道對象的類型?

回答

4

如果不能使這兩個類從普通的Interface \ Base Class派生,那麼這是最好的面向對象的解決方案。
您可以將列表項目轉換爲動態。

List<object> list = GetListFromSomeWhere(); 
var dynamicList = list.Cast<dynamic>(); 

然後沒有編譯錯誤的動態列表進行排序:

dynamicList.OrderBy(x => x.CreateDate); 
+1

gdoron,這只是真棒:)無法相信我從來鑫卡特關於使用動態類型 - 猜我仍然停留英寸淨3.5,呵呵;)謝謝! – bomortensen 2012-03-11 10:38:14

+0

我想我們應該在列表的末尾添加.ToList()。代碼()否則會顯示錯誤? – 2015-11-10 22:56:24

相關問題