DataTable 给包含数字的字符串 排序
(2011-03-22 22:51:40)
标签:
datatable字符串数字排序lambdait |
分类: C /C# |
应用场景如下:
Index
No.100
No.2
No.50
将上表存在DataTable中,要将DataTable的row按照Index进行排序,希望的顺序是:
No.2,No.50,No.100
如果简单的调用DataTable的sort功能,得到的结果是:
No.100,No.2,No.50
这是由于Sort将Index按照字符串的比较方法进行排序。
查了很多方法,有将Index字符串拆分成两部分,然后将数字部分提取出来进行排序的,
也有将每一行对应到一个类A的对象,加到List列表中,A继承IComparer接口,将Compare方法
重载,用对应的字段进行比较,得到想要的顺序。
我最理想的方法是仍将数据存在DataTable中,对DataTable进行排序的时候能够传入自定义的
比较器,各种查询资料,终于得到了想要的结果。