ArrayList al = new ArrayList();
            al.AddRange(new string[6] { "A1", "A2", "A11", "A12", "A13", "A3" });
            al.Sort();
           重新生成的数组为:["A1",  "A11", "A12", "A13","A2", "A3"]
      而我想要的结果是  :["A1",  "A2", "A3","A11", "A12", "A13"]  请我   ,该怎么排序啊啊啊啊,急!!!1

解决方案 »

  1.   

    传递一个 IComparer 接口,定义自己的规则(将后面的数字比较大小)
      

  2.   

    var query=al.ToArray().OrderBy(a=>int.Parse(Regex.Match(a.ToString(),"\\d+").Value));
      

  3.   


    请教下 返回的 query 是什么类型数据数组?
      

  4.   

    正确做法还是应该用1楼所说的方式:
    http://msdn.microsoft.com/zh-cn/library/0e743hdt(v=vs.80).aspx
      

  5.   

    如果对于这样一个数组,该这么样排序ArrayList al = new ArrayList();
      al.AddRange(new string[6] { "A1", "A2", "A11", "A12", "A13", "A3","B1","B2" });想要生成这样一个顺序:["A1", "A2", "A3","A11", "A12", "A13","B1","B2"]
      

  6.   


    怎样定义一个IComparer 
      

  7.   

    有一个Sort()方法,可以直接对集合排序
      

  8.   

     ArrayList al = new ArrayList();
      al.AddRange(new string[6] { “B3","A1", "A2", "A11", "A12", "A13", "A3","B1","B2" });
    怎样定义一个 IComparer ,使ArrayList 内元素的数组的顺序为
    :["A1", "A2", "A3","A11", "A12", "A13","B1","B2",”B3“]
      

  9.   

    本帖最后由 caozhy 于 2012-01-12 16:48:20 编辑