Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中根据属性按自定义顺序对对象数组进行排序?_C#_Asp.net_C# 4.0 - Fatal编程技术网

如何在C#中根据属性按自定义顺序对对象数组进行排序?

如何在C#中根据属性按自定义顺序对对象数组进行排序?,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,我有以下代码 CustomerModel[] customerModel ; customerModel = GetCustomerModel(customerReport); 现在,这个CustomerModel类有一个名为DealType的字符串属性,可能的值为“CostOnly”、“Edlp”、“NonPromoted”、“Periodic” 我只想按DealType属性按以下顺序对customerModel数组排序 "NonPromoted", "Edlp", "Periodic",

我有以下代码

CustomerModel[] customerModel ;

customerModel = GetCustomerModel(customerReport);
现在,这个
CustomerModel
类有一个名为
DealType
的字符串属性,可能的值为
“CostOnly”、“Edlp”、“NonPromoted”、“Periodic”

我只想按DealType属性按以下顺序对customerModel数组排序

"NonPromoted",
"Edlp",
"Periodic",
"CostOnly"
解决这个问题的最佳方法是什么


提前感谢。

您可以按顺序自定义顺序列表中项目的索引进行排序,如下所示:

List<string> sortOrderList = new List<string>()
{
   "NonPromoted",
   "Edlp",
   "Periodic",
   "CostOnly"
};

 customerModel = customerModel.OrderBy(x=> sortOrderList.IndexOf(x.DealType)).ToArray();

您可以按顺序自定义顺序列表中项目的索引进行排序,如下所示:

List<string> sortOrderList = new List<string>()
{
   "NonPromoted",
   "Edlp",
   "Periodic",
   "CostOnly"
};

 customerModel = customerModel.OrderBy(x=> sortOrderList.IndexOf(x.DealType)).ToArray();
可能重复-可能重复-