[英]How to sort an array of objects based on a property in custom order in C#?
我有以下代碼
CustomerModel[] customerModel ;
customerModel = GetCustomerModel(customerReport);
現在,此CustomerModel
類具有一個名為DealType
的字符串屬性,其可能值為"CostOnly","Edlp","NonPromoted","Periodic"
。
我想要的只是按照以下順序對DealerModel數組順序按DealType屬性進行排序。
"NonPromoted",
"Edlp",
"Periodic",
"CostOnly"
解決此問題的最佳方法是什么?
提前致謝。
您可以按順序自定義訂單列表中的項目索引進行排序,如下所示:
List<string> sortOrderList = new List<string>()
{
"NonPromoted",
"Edlp",
"Periodic",
"CostOnly"
};
customerModel = customerModel.OrderBy(x=> sortOrderList.IndexOf(x.DealType)).ToArray();
這將按sortOrderList
順序對每個元素進行排序
另一個選擇是使用Array.Sort()進行就地排序:
Array.Sort(customerModel, (x, y) => sortOrderList.IndexOf(x.DealType) -
sortOrderList.IndexOf(y.DealType));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.