#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// /// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1) /// /// 传入的DataTable /// 筛选条件 /// 排序条件 /// 1,直接用DefaultView按条件返回,效率较高;2,DataTable筛选,排序返回符合条件行组成的新DataTable public static DataTable SortDataTable(DataTable dt, string strExpr, string strSort, int mode) { switch (mode) { case 1: //方法一 直接用DefaultView按条件返回 dt.DefaultView.RowFilter = strExpr; dt.DefaultView.Sort = strSort; return dt; case 2: //方法二 DataTable筛选,排序返回符合条件行组成的新DataTable DataTable dt1 = new DataTable(); DataRow[] GetRows = dt.Select(strExpr, strSort); //复制DataTable dt结构不包含数据 dt1 = dt.Clone(); foreach (DataRow row in GetRows) { dt1.Rows.Add(row.ItemArray); } return dt1; default: return dt; } } #endregion //csharp/6393