【发布时间】:2018-11-23 08:37:17
【问题描述】:
我需要了解如何按预定义的模式对一些数据进行排序。
假设我有一些字符串,代表产品信息,例如。 G。
Product1,红色,70/n
Product6,蓝色,90/n
Product3,红色,50/n
Product9,白色,33/n
我用逗号分隔这些字符串并将它们存储在不同的数组(名称、颜色、价格)中,然后存储在具有相同列的 DataTable 中。
我可以使用以下命令按颜色排序创建的行:
DataView.sort = "color"
或通过 LINQ 使用
DataRow[] dr = table.Select().OrderBy(u=>u[color]).ToArray();
DataTable sortedtable = dr.CopyToDataTable();
但这只是简单的排序,asc/desc,基于字母表。
我想用预定义的模式来实现排序。例如,项目订单将由红色、黑色、蓝色、白色的颜色定义。
有什么简单的我可以做的吗?我认为这可以通过检查每行颜色并将其与预定义的颜色列表进行比较,然后根据此顺序构建新的 Array / DataTable 来实现。但是我觉得这是一个弱的方法。
【问题讨论】:
-
对不起,这只是代码的一部分,实际上我是在手机上写的,但完整的代码是:DataRow[] dr = table.Select().OrderBy(u =>u[颜色]).ToArray();数据表 sortedtable = dr.CopyToDataTable();