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. Creater中选择一行的方法

    1.  在表布局中增加一单选钮列,给单选钮的属性name任意设定一个值.2.  选择单选钮对应列,将其selectID设为单选钮的ID;将onclick设为setTimeout('initAllRow ...

  2. 启动管理软件服务器时,提示midas.dll错误

    首先确认系统以及管理软件目录内是否有midas.dll文件,如果没有,请复制或下载midas.dll到相应目录.系统默认路径为:'c:\windows\system32\' 然后依次打开“开始菜单”内 ...

  3. Delphi内嵌汇编语言BASM精要(转帖)

    1 BASM概念简要  汇编语句由指令和零至三个表达式构成.表达式由常数(立即数).寄存器和标识符构成.例如: movsb        // 单指令语句 jmp @Here    // 一个表达式: ...

  4. 如何在VS2013中新建WindowsService定时任务

    http://jingyan.baidu.com/article/cd4c2979e9330d756f6e6070.html 很多人都想做定时任务,但是没有不知道如何下手,现在就用WindowsSer ...

  5. Codeforces 735C:Tennis Championship(数学+贪心)

    http://codeforces.com/problemset/problem/735/C 题意:有n个人打锦标赛,淘汰赛制度,即一个人和另一个人打,输的一方出局.问这n个人里面冠军最多能赢多少场, ...

  6. python测试代理IP地址

    代码: # -*- coding: utf-8 -*- import urllib,urllib2,re from random import choice from scrapy.selector ...

  7. [转]get,post数据长度的限制

    一.问题起因 在某项目释放后Bug统计的附件<释放后问题>里有: 问题 原因 分析 备注 CSV处理时,如果处理的主题数过多,发生URL参数上限的错误: 可变长度的参数通过URL方式传递, ...

  8. Spring测试工具返回Application

    package pmisf.webservice.util; import javax.servlet.ServletContextEvent; import javax.servlet.Servle ...

  9. if else 语句练习

    一.if  else 语句.

  10. HDU 2289 CUP 二分

    Cup Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...