使用c#将数据表中的字符串项排序为整型
本文关键字:排序 整型 字符串 数据表 使用 | 更新日期: 2023-09-27 18:09:43
我在DataTable中存储了一些数字代码。当我尝试使用DataView进行排序时,它按字符串对列进行排序。将数据排序为整数/数字的最简单方法是什么?
DataView view = dt.DefaultView();
view.Sort = "Code asc";
dt = view.ToTable();
datatable中的数据:128、123、112、12、126
排序后显示:112、12、123、126、128
预期结果:12、112、123、126、128
下面是一个工作示例。您可以通过Clone创建另一个DataTable,并将列的数据类型更改为Int并复制数据。
DataTable dt = GetTable(); // Assume this method returns the datatable from service
DataTable dt2 = dt.Clone();
dt2.Columns["Code"].DataType = Type.GetType("System.Int32");
foreach (DataRow dr in dt.Rows)
{
dt2.ImportRow(dr);
}
dt2.AcceptChanges();
DataView dv = dt2.DefaultView;
dv.Sort = "Code ASC";
一种选择是添加具有正确类型的计算列并对其进行排序。
:
dt.Columns.Add( "Int32_Code", typeof( int ), "Code" );
dt.DefaultView.Sort("Int32_Code");
dt = dt.DefaultView.ToTable();
在数据表中创建列时,定义为typeof(int)
dt.Columns.Add("Code", typeof(int));
按如下所示在datatable中创建一个新列,并对新列code_int进行排序add ("Code_int", typeof(Int16) ";Convert(Code, 'System.String')");