C#对DataTable里数据排序的方法
2023-06-13 09:15:12 时间
直接给个实例代码吧
protectedvoidPage_Load(objectsender,EventArgse)
{
DataTabledt=newDataTable();
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="AgeASC";
dt=dt.DefaultView.ToTable();
foreach(DataRowsindt.Rows)
{
Response.Write(s["Age"].ToString()+"--"+s["Name"].ToString()+"<br/>");
}
Response.Write("------------------1----------------<br/>");
#region方法1:将年龄补齐为2位,然后再进行排序,但是实际不应该有0(仅作参考)
for(inti=0;i<dt.Rows.Count;i++)
{
dt.Rows[i]["Age"]=dt.Rows[i]["Age"].ToString().PadLeft(2,"0");
}
dt.DefaultView.Sort="AgeASC";
dt=dt.DefaultView.ToTable();
foreach(DataRowsindt.Rows)
{
Response.Write(s["Age"].ToString()+"--"+s["Name"].ToString()+"<br/>");
}
#endregion
Response.Write("------------------2----------------<br/>");
#region方法2:创建新的DataTable,将Age类型变更为int类型
DataTabledtNew=dt.Clone();
dtNew.Columns["Age"].DataType=typeof(int);//指定Age为Int类型
foreach(DataRowsindt.Rows)
{
dtNew.ImportRow(s);//导入旧数据
}
dtNew.DefaultView.Sort="AgeASC";
dtNew=dtNew.DefaultView.ToTable();
foreach(DataRowsindtNew.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,AgeASC";
dt=dt.DefaultView.ToTable();
foreach(DataRowsindt.Rows)
{
Response.Write(s["Age"].ToString()+"--"+s["Name"].ToString()+"<br/>");
}
#endregion
Response.Write("-----------------4-----------------<br/>");
#region方法4:运用LinQ,将DataTable转换为集合,再调用集合自带的排序方法进行排序
foreach(DataRowsindt.Rows.Cast<DataRow>().OrderBy(r=>int.Parse(r["Age"].ToString())))
{
Response.Write(s["Age"].ToString()+"--"+s["Name"].ToString()+"<br/>");
}
#endregion
}
相关文章
- C#时间控件[通俗易懂]
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- JavaScript与C#Windows应用程序交互方法
- 将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载)图文
- C#绝对路径拼接相对路径的实例代码
- C#操作目录与文件的方法步骤
- C#连接db2数据库的实现方法
- c#winform取消右上角关闭按钮的实现方法
- c#Graphics使用方法(画圆写字代码)
- c#的dllimport使用方法详解
- C#使用PHP服务端的WebService通信实例
- C#实现appSettings节点读取与修改的方法
- c#中Empty()和DefalutIfEmpty()用法分析
- C#递归读取XML菜单数据的方法
- C#中实现抽象类里建立静态方法
- 初步认识C#中的Lambda表达式和匿名方法
- C#运用FileInfo类实现拷贝文件的方法
- C#缓存之SqlCacheDependency用法实例总结
- C#后台创建控件并获取值的方法
- 采用C#实现软件自动更新的方法
- C#实现动态生成表格的方法
- C#实现Datatable排序的方法
- C#基础之委托用法实例教程