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
//首先获得原始排序

 

 

posted @ 2019-11-18 18:11  enych  阅读(501)  评论(0编辑  收藏  举报