如何在C#中基于自定义顺序的属性对对象数组进行排序?

时间:2016-07-29 11:13:47

标签: c# asp.net c#-4.0

我有以下代码

app.use(require('webpack-hot-middleware')(compiler));

现在这个 dialog_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new ConfirmAsyncTask().execute(); Intent intent = new Intent(context,OngoingFragment.class); v.getContext().startActivity(intent); } }); 类有一个名为CustomerModel[] customerModel ; customerModel = GetCustomerModel(customerReport); 的字符串属性,其值可能为CustomerModel

我想要的是按照以下顺序按DealType属性对customerModel数组顺序进行排序。

DealType

解决此问题的最佳方法是什么?

先谢谢。

1 个答案:

答案 0 :(得分:4)

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

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));