簡體   English   中英

對TList進行排序 <object> (ntiers)與ThenBy

[英]Sorting TList<object> (ntiers) with ThenBy

我們正在使用nTiers,我有這個對象列表,我需要按屬性排序,然后由另一個屬性排序,我有以下但我無法弄清楚如何到ThenBy ,我已經看到了List<object>示例沒有TList<object>

TList<Client> clients = service.GetClientsById(cid);
clients.Sort("ClientOrder");

但后來我需要通過ClientName對其進行排序。 我在使用LINQ的另一篇文章中看到了一個例子,但我不能讓它像這樣工作(下面的例子),這將允許我做一個ThenBy

List<Order> SortedList = objListOrder.OrderBy(o=>o.OrderDate).ToList();

調用ToList<Client> 之前,需要調用ThenBy<Client> ToList<Client>

List<Order> sortedList =
    clients.OrderBy(o => o.ClientOrder)
           .ThenBy(o => o.ClientName)
           .ToList();

ThenBy<T> 僅適用IOrderedEnumerable<T> s IOrderedEnumerable<T>是來自OrderBy<T>的返回類型,但是一旦調用ToList<T> ,它就不再是IOrderedEnumerable<T> ,而是List<T>List<T>未實現IOrderedEnumerable<T>

您可以將Comparison類與List.Sort一起List.Sort

clients.Sort(new Comparison<Client>(
    (client1, client2) =>
    {
        // compare dates
        int result = client1.OrderDate.CompareTo(client2.OrderDate);
        // if dates are equal (result = 0)
        if(result == 0)
            // return the comparison of client names
            return client1.ClientName.CompareTo(client2.ClientName);
        else
            // otherwise return dates comparison
            return result;
    })
);

(在上面的示例中,將跳過處理空值,但必須將其包含在實際工作中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM