猿问

DataTable数据排序。

One Two
1 1
2 1
3 1
3 2
3 3
4 1
4 2
5 1

有没有一种这样的排序,首先先要满足One字段的排序,从低到高,再满足Two在One的基础上从低到高的排序,我经理提示我用DataView,可是我不会。

慕哥6287543
浏览 632回答 12
12回答

喵喵时光机

DataView dataView = dt.DefaultView; dataView.Sort = "One ASC,TwoASC"; dtContent = dataView.ToTable(); 最后还是用DataView解决了。

杨__羊羊

Linq就搞定,想怎么搞就怎么搞

牛魔王的故事

我就是不太懂这个代码,没接触过 var selectedRows = from r in Dt.AsEnumerable() orderby r.Field<DateTime>("One") descending select r;  我查到这样一串代码,但是我不是很能看懂

慕姐8265434

建议是弄成实体类.别用datatable了.这种东西没人用的. 实体类用linq的话就是dr.orderby(a=>a.one).thenby(a=>a.two); 多简单的事情.

MM们

我不太懂怎么弄成实体类耶,我看到这整个系统中都是用datatable然后前台遍历这种方式。

九州编程

@你猜丶: 这种做法真的问题很大的. 你就定义一个实体类.表里有哪些字段.就是写哪些属性在实体类. 然后遍历datatable.把数据放一个实体集合里. 前端就遍历这个实体集合.

森栏

@你猜丶: 比如你这个需求就是一个 public class item{public int one;public int two} dt.tolist<item>().orderby(a=>a.one).thenby(a=>a.two);

一只萌萌小番薯

@吴瑞祥: 等等,这个实体类不会是model吧?

天涯尽头无女友

@你猜丶: 是的.

肥皂起泡泡

@吴瑞祥: 额,可是我这个系统的架构本身是不使用model层的,o(╯□╰)o
随时随地看视频慕课网APP
我要回答