[英]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.