protected void Page_Load(object sender, EventArgs e)
    {
        DataTable
dt = new DataTable();
        dt.Columns.Add("Name");
        dt.Columns.Add("Age");//因为是字符串,所以排序不对
        dt.Rows.Add("小明", "21");
        dt.Rows.Add("小张", "10");
        dt.Rows.Add("小红", "9");
        dt.Rows.Add("小伟", "7");
        dt.Rows.Add("小美", "3");
        dt.DefaultView.Sort
= "Age ASC";
        dt
= dt.DefaultView.ToTable();

foreach
(DataRow s in dt.Rows)
        {
            Response.Write(s["Age"].ToString()
+ "--" + s["Name"].ToString() + "<br/>");
        }
        Response.Write("------------------1----------------<br/>");

#region
方法1:将年龄补齐为2位,然后再进行排序,但是实际不应该有0(仅作参考)
        for
(int i = 0; i < dt.Rows.Count; i++)
        {
            dt.Rows[i]["Age"]
= dt.Rows[i]["Age"].ToString().PadLeft(2, '0');
        }
        dt.DefaultView.Sort
= "Age ASC";

dt
= dt.DefaultView.ToTable();

foreach
(DataRow s in dt.Rows)
        {
            Response.Write(s["Age"].ToString()
+ "--" + s["Name"].ToString() + "<br/>");
        }
        #endregion

Response.Write("------------------2----------------<br/>");

#region
方法2:创建新的DataTable,将Age类型变更为int类型
        DataTable
dtNew = dt.Clone();
        dtNew.Columns["Age"].DataType
= typeof(int);//指定Age为Int类型
        foreach
(DataRow s in dt.Rows)
        {
            dtNew.ImportRow(s);//导入旧数据
        }

dtNew.DefaultView.Sort
= "Age ASC";
        dtNew
= dtNew.DefaultView.ToTable();

foreach
(DataRow s in dtNew.Rows)
        {
            Response.Write(s["Age"].ToString()
+ "--" + s["Name"].ToString() + "<br/>");
        }
        #endregion

Response.Write("-----------------3-----------------<br/>");

#region
方法3:添加一列,主要用于排序
        dt.Columns.Add("AgeLength",
typeof(int), "len(Age)");//添加该列时,DataTable列数据即生成

dt.DefaultView.Sort
= "AgeLength,Age ASC";
        dt
= dt.DefaultView.ToTable();

foreach
(DataRow s in dt.Rows)
        {
            Response.Write(s["Age"].ToString()
+ "--" + s["Name"].ToString() + "<br/>");
        }
        #endregion

Response.Write("-----------------4-----------------<br/>");

#region
方法4:运用LinQ,将DataTable转换为集合,再调用集合自带的排序方法进行排序
        foreach
(DataRow s in dt.Rows.Cast<DataRow>().OrderBy(r =>
int.Parse(r["Age"].ToString())))
        {
            Response.Write(s["Age"].ToString()
+ "--" + s["Name"].ToString() + "<br/>");
        }
        #endregion
    }

DataTable字符串类型的数字,按照数字类型排序的更多相关文章

  1. double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码

    今天工作中遇到一个要不一个double型的字符串转换成一个纯字数字符串和一个标志这个数字字符串的小数点有几位的int类型 例如:“23.123”--->“23123” + 3   比较简单.就是 ...

  2. js将某个值转换为String字符串类型或转换为Number数字类型

    将某个值转换为String类型 1. value.toString() toString()方法返回一个表示该对象的字符串 var a = 123 a.toString() // '123' 2. & ...

  3. day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型

    复习 ''' 流程控制 1.顺序结构.分支结构.循环结构 2.if分支结构 if 条件: 代码块 elif 条件: 代码块 else: 代码块 # 可以被if转换为False:0 | '' | Non ...

  4. JavaScript 中的数字和日期类型

    本章节介绍如何掌握Javascript里的数字和日期类型 数字EDIT 在 JavaScript 里面,数字都是双精度浮点类型的 double-precision 64-bit binary form ...

  5. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  6. Java中long类型直接赋值大数字 注意事项

    在java中,我们都知道有八种基本数据类型:byte. char. short .int. long. float. double .boolean 下面列出以下四种数据类型及其取值范围: 本文主要讲 ...

  7. SQL算术数字的默认类型

    select 100*100*100*100*100 --错误:将 expression 转换为数据类型 int 时出现算术溢出错误. select   cast(1000 as  bigint) * ...

  8. DB2中字符、数字和日期类型之间的转换

    DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别 ...

  9. js字符串转换成数字与数字转换成字符串的实现方法

    转载:点击查看地址 js字符串转换成数字 将字符串转换成数字,得用到parseInt函数.parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseInt(' ...

  10. js字符串转换成数字,数字转换成字符串

    转自网络,忘记出处了. js字符串转换成数字 将字符串转换成数字,得用到parseInt函数. parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseIn ...

随机推荐

  1. ubuntu apache开启重写模块

    http://www.iblue.cc/2011/09/ubuntu-apache%E5%BC%80%E5%90%AF%E9%87%8D%E5%86%99%E6%A8%A1%E5%9D%97/ Ubu ...

  2. 我的Windows naked apps

    0. 驱动精灵全能网卡版 1. Microsoft Office 2010/2013 2. IE 11 3. Filezilla Client & Server 4. Google Chrom ...

  3. Web SQL

    HTML5本地存储——Web SQL Database 基于 HTML5 中的 Web SQL Database 来构建应用程序 前端HTML5几种存储方式的总结 <!DOCTYPE HTML& ...

  4. js实现通用的微信分享组件示例

    一.可定义的信息 1.分享时显示的LOGO:2.分享LOGO的宽度:3.分享LOGO的高度:4.分享出去显示的标题(默认调用网页标题):5.分享出去显示的描述(默认调用网页标题):6.分享链接(默认为 ...

  5. cookie学习

    cookie是储存于访问者的计算机中的变量,每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie,可以使用javascript来创建和取回cookie的值. 创建和存储cookie 首先 ...

  6. js笔记---封装一般运动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. c#之线程池优先级

    using System; using System.Threading; namespace ConsoleApplication1 { class Program { static void Ma ...

  8. 2016年11月14日 星期一 --出埃及记 Exodus 20:5

    2016年11月14日 星期一 --出埃及记 Exodus 20:5 You shall not bow down to them or worship them; for I, the LORD y ...

  9. 集合、ArrayList 集合。Stack集合。Queue集合。以及Hashtable集合

    arrayList 首先复制Colections加  : 创建arrayList ar =new arrayList(); //ArrayList al=new ArrayList();        ...

  10. CentOS 7 网络配置方法

    [root@zookeeper network-scripts]#  vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 输入以下文本: TYPE=Ethe ...