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

  • 相关阅读:
    透视分析
    仪表分析
    sql查询和预览界面,在预览界面选择图表最后进行导出数据和图表到excel
    可视化查询
    创建数据源
    Smartbi使用Oracle RAC数据库做知识库
    反应器(Reactor)模式
    Netty:EventLoopGroup
    ShuffleTest java 使用集合的方式进行排序
    MapTest java 核心编程
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11927222.html
Copyright © 2011-2022 走看看