DataTable Dt = new DataTable("cart");
         DataColumn dc1 = new DataColumn("KeyWords", Type.GetType("System.String"));
         dt.Columns.Add(dc1);
         //以上代码完成了DataTable的构架,但是里面是没有任何数据的
             DataRow dr = dt.NewRow();
             dr["KeyWords"] = "东风";
             dt.Rows.Add(dr);
             dr = dt.NewRow();
             dr["KeyWords"] = "联合卡车";
             dt.Rows.Add(dr);
             dr = dt.NewRow();
             dr["KeyWords"] = "皮卡";
             dt.Rows.Add(dr);
             dr = dt.NewRow();
             dr["KeyWords"] = "商用车";
             dt.Rows.Add(dr);
我想把上面Datatable中的数据按照dr["KeyWords"]的长度进行排序,求助各位帮忙啊

解决方案 »

  1.   

    试试这个
    dt.DefaultView.Sort="len(keywords)"
      

  2.   

    dt.DefaultView.Sort = "len(keywords)";
    DataTable dtTemp = dt.DefaultView.ToTable();
      

  3.   

    你再为表增加一列来统计长度呢
    DataTable dt = new DataTable("cart");
                DataColumn dc1;
                dc1= new DataColumn("KeyWords", Type.GetType("System.String"));
                dt.Columns.Add(dc1);
                dc1 = new DataColumn("LegthNum", Type.GetType("System.Int32")); 
                dt.Columns.Add(dc1);
                //以上代码完成了DataTable的构架,但是里面是没有任何数据的
                DataRow dr = dt.NewRow();
                dr["KeyWords"] = "东风";
                dr["LegthNum"] = dr["KeyWords"].ToString().Length;
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["KeyWords"] = "联合卡车";
                dr["LegthNum"] = dr["KeyWords"].ToString().Length;            dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["KeyWords"] = "皮卡";
                dr["LegthNum"] = dr["KeyWords"].ToString().Length;
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["KeyWords"] = "商用车";
                dr["LegthNum"] = dr["KeyWords"].ToString().Length;
                dt.Rows.Add(dr);            //this.GridView1.DataSource = dt;
                //this.GridView1.DataBind();
                //return;            DataView dv = dt.DefaultView;
                dv.Sort = "LegthNum desc";
                DataTable dtTemp = dv.ToTable();            this.GridView1.DataSource = dtTemp;
                this.GridView1.DataBind();
                return;
      

  4.   

    如果楼主的数据是从数据库里读取的,那么可以在数据里操作了order by len(KeyWords) desc