问题描述
ArrayListal=newArrayList();al.AddRange(newstring[6]{"A1","A2","A11","A12","A13","A3"});al.Sort();重新生成的数组为:["A1","A11","A12","A13","A2","A3"]而我想要的结果是:["A1","A2","A3","A11","A12","A13"]请我,该怎么排序啊啊啊啊,急!!!1
解决方案
解决方案二:
传递一个IComparer接口,定义自己的规则(将后面的数字比较大小)
解决方案三:
varquery=al.ToArray().OrderBy(a=>int.Parse(Regex.Match(a.ToString(),"\d+").Value));
解决方案四:
引用2楼q107770540的回复:
varquery=al.ToArray().OrderBy(a=>int.Parse(Regex.Match(a.ToString(),"\d+").Value));
请教下返回的query是什么类型数据数组?
解决方案五:
正确做法还是应该用1楼所说的方式:
解决方案六:
如果对于这样一个数组,该这么样排序ArrayListal=newArrayList();al.AddRange(newstring[6]{"A1","A2","A11","A12","A13","A3","B1","B2"});想要生成这样一个顺序:["A1","A2","A3","A11","A12","A13","B1","B2"]
解决方案七:
引用4楼q107770540的回复:
正确做法还是应该用1楼所说的方式:http://msdn.microsoft.com/zh-cn/library/0e743hdt(v=vs.80).aspx
怎样定义一个IComparer
解决方案八:
引用4楼q107770540的回复:
正确做法还是应该用1楼所说的方式:http://msdn.microsoft.com/zh-cn/library/0e743hdt(v=vs.80).aspx
mark..
解决方案九:
有一个Sort()方法,可以直接对集合排序
解决方案十:
引用1楼caozhy的回复:
传递一个,定义自己的规则(将后面的数字比较大小)
ArrayListal=newArrayList();al.AddRange(newstring[6]{“B3","A1","A2","A11","A12","A13","A3","B1","B2"});怎样定义一个IComparer,使ArrayList内元素的数组的顺序为:["A1","A2","A3","A11","A12","A13","B1","B2",”B3“]
解决方案十一:
本帖最后由 caozhy 于 2012-01-12 16:48:20 编辑
解决方案十二:
顶楼上
解决方案十三:
10楼的是对的
解决方案十四:
mark