C#的ArrayList排序按字母串和长度 [英] C# sort Arraylist strings alphabetical and on length
本文介绍了C#的ArrayList排序按字母串和长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想排序字符串
。
的ArrayList
假设:
{A,C,AA,B,CC,BB}
Arraylist.Sort
给出:
{A,AA,B,BB,C,CC}
我需要的是:
{A,B,C,AA,BB,CC}
解决方案
这是一种老派的,但是,我去IComparer接口。 。
公共类SortAlphabetLength:System.Collections.IComparer
{
公众诠释比较(对象X,对象Y)
{
如果(x.ToString()==长度y.ToString()。长度)
返回的String.Compare(x.ToString(),y.ToString());
否则,如果(x.ToString()长度方式> y.ToString()长度)。
返回1;
其他
返回-1;
}
}
,然后对其进行测试。 。
类节目
{
静态无效的主要(字串[] args)
{
ArrayList的值=新的ArrayList()
{
的A,AA,B,BB,C,CC的
}; SortAlphabetLength alphaLen =新SortAlphabetLength();
values.Sort(alphaLen); 的foreach(在字符串值ITM)
Console.WriteLine(ITM);
}
}
输出:
A
乙
C
AA
BB
CC
I'm trying to sort an ArrayList
of String
.
Given:
{A,C,AA,B,CC,BB}
Arraylist.Sort
gives:
{A,AA,B,BB,C,CC}
What I need is:
{A,B,C,AA,BB,CC}
解决方案
This is kind of old school but, I went the IComparer Interface . . .
public class SortAlphabetLength : System.Collections.IComparer
{
public int Compare(Object x, Object y)
{
if (x.ToString().Length == y.ToString().Length)
return string.Compare(x.ToString(), y.ToString());
else if (x.ToString().Length > y.ToString().Length)
return 1;
else
return -1;
}
}
and then test it . . .
class Program
{
static void Main(string[] args)
{
ArrayList values = new ArrayList()
{
"A","AA","B","BB","C","CC"
};
SortAlphabetLength alphaLen = new SortAlphabetLength();
values.Sort(alphaLen);
foreach (string itm in values)
Console.WriteLine(itm);
}
}
output:
A
B
C
AA
BB
CC
这篇关于C#的ArrayList排序按字母串和长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文