zoukankan      html  css  js  c++  java
  • C# DataTable 排序

    使用DataTable的DefaultView中Sort方法排序,如果遇见数字类型就会有问题

     1、补齐年龄位数(不建议)

               #region 补齐年龄位数,然后排序
                foreach (DataRow item in dt.Rows)
                {
                    item["Age"] = item["Age"].ToString().PadLeft(2, '0');
                }
                dt.DefaultView.Sort = "Age ASC";
                dt = dt.DefaultView.ToTable();
                #endregion    
    View Code

    2、增加一列,判断年龄长度然后排序

                #region 增加一列,判断年龄长度然后排序
                dt.Columns.Add("AgeLength", typeof(int), "len(Age)");
                dt.DefaultView.Sort = "AgeLength,Age ASC";
                dt = dt.DefaultView.ToTable();
                #endregion        
    View Code

    3、克隆表结构,将年龄列数据类型修改为数字类型

                #region 克隆表结构,将年龄列数据类型修改为数字类型
                DataTable dtNew = dt.Clone();
                dtNew.Columns[1].DataType = typeof(int);
                foreach (DataRow item in dt.Rows)
                {
                    dtNew.ImportRow(item);
                }
                dtNew.DefaultView.Sort = "Age ASC";
                dtNew = dtNew.DefaultView.ToTable();
                #endregion
    View Code

    4、利用linq将dataTable转换为集合,然后排序

                #region 利用linq将dataTable转换为集合,然后排序
                dt = dt.Rows.Cast<DataRow>().OrderBy(r => int.Parse(r["Age"].ToString())).CopyToDataTable();
                #endregion
    View Code

    参考 https://www.jb51.net/article/43343.htm

  • 相关阅读:
    每日总结50
    每日总结49
    每日总结48
    每日总结47
    每日总结46
    每日总结45
    每日总结44
    每日总结42
    每日总结41
    每日总结39
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11927222.html
Copyright © 2011-2022 走看看