0
我需要以邏輯順序表示不同類型的文檔。 所以我有一個ID對象列表。我需要做一個比較器,通過「手動」規則來排序這些對象。按ID排序必須是2,32,5,12,8,43 ...等等。如何以邏輯順序表示不同類型的文檔
我使用LINQ
documents.OrderBy(doc=> doc.Id, new DocumentsComparer<int>());
public class DocumentsComparer<T> : IComparer<int>
{
...???...
}
如何做出這樣的比較器?
如果'order'列表很大,我建議使用Dictionary映射。 – leppie 2011-06-16 12:58:02
它看起來不錯。但我無法運行此比較器。它不被linq查詢調用?我不懂爲什麼。我編輯了我的帖子。 – podeig 2011-06-16 13:13:25
@podeig使用'orderby()'後,它不會立即被調用。這與'IEnumerable'的工作方式有關(延遲加載)。要測試它,你可以嘗試'documents.OrderBy(doc => doc.Id,new DocumentsComparer())。ToList()'; –
2011-06-16 13:17:02