C# 列排序
private void button2_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("AAA", typeof(string));//0 dt.Columns.Add("BBB", typeof(string));//1 dt.Columns.Add("CCC", typeof(string));//2 dt.Columns.Add("DDD", typeof(string));//3 dt.Columns.Add("EEE", typeof(string)); //4 dt.Columns.Add("FFF", typeof(string));//5 dt.Columns.Add("GGG", typeof(string));//6 dt.Columns.Add("HHH", typeof(string));//7 DataRow dr = dt.NewRow(); dr["AAA"] = "000"; dr["BBB"] = "111"; dr["CCC"] = "222"; dr["DDD"] = "333"; dr["EEE"] = "444"; dr["FFF"] = "555"; dr["GGG"] = "666"; dr["HHH"] = "7777"; dt.Rows.Add(dr); dt.Columns[0].SetOrdinal(3); //设置该列的索引;索引小的在前面 dt.Columns[3].SetOrdinal(0); //设置该列的索引;索引小的在前面 //dt.Columns[1].SetOrdinal(1); //设置该列的索引;索引小的在前面 //dt.Columns[2].SetOrdinal(2); //设置该列的索引;索引小的在前面 //dt.Columns[5].SetOrdinal(2); //设置该列的索引;索引小的在前面 //for (int i = 0; i < dt.Columns.Count; i++) //{ // dt.Columns[i].SetOrdinal(0); //设置该列的索引;索引小的在前面 //} bool flag = false; List<string> Colums_list = get_ColumnsName(); for (int i = 0; i < dt.Columns.Count; i++) { for (int j = 0; j < Colums_list.Count; j++) { if (dt.Columns[i].ColumnName == Colums_list[j]) { dt.Columns[i].SetOrdinal(j); //设置该列的索引 break; } } } } public List<string> get_ColumnsName() { List<string> Column_list = new List<string>(); Column_list.Add("HHH"); Column_list.Add("FFF"); Column_list.Add("CCC"); Column_list.Add("BBB"); Column_list.Add("EEE"); Column_list.Add("DDD"); return Column_list; }
第0个设置为7的时候, 第1个自动设置为0;第7个自动设置为6; 第0个设置为3时候 第1个自动设置为0;第3个自动设置为2 //首先获得原始排序