在C#中,可以使用DataView对象来对DataTable进行排序,并且保持原始顺序。以下是一个示例代码:
// 创建一个DataTable DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); // 添加数据到DataTable dt.Rows.Add(1, "Alice"); dt.Rows.Add(2, "Bob"); dt.Rows.Add(3, "Charlie"); // 使用DataView对象对DataTable进行排序 DataView dv = new DataView(dt); dv.Sort = "Name ASC"; // 遍历排序后的数据,并保持原始顺序 foreach (DataRowView drv in dv) { int id = (int)drv["ID"]; string name = (string)drv["Name"]; Console.WriteLine($"ID: {id}, Name: {name}"); } // 输出原始顺序的数据 foreach (DataRow row in dt.Rows) { int id = (int)row["ID"]; string name = (string)row["Name"]; Console.WriteLine($"ID: {id}, Name: {name}"); }
在上面的示例中,首先创建了一个包含ID和Name列的DataTable,并添加了几行数据。然后使用DataView对象对DataTable按Name列进行升序排序。最后通过遍历DataView对象和原始DataTable对象,可以看到排序后的数据以及保持原始顺序的数据。