我在这里缺少一些小东西,使用Array.Sort
和IComparable<T>
按字符串长度对字符串数组进行排序。 <{1}}方法不会过载。
int CompareTo(string)
答案 0 :(得分:1)
而不是尝试覆盖CompareTo
类上的string
方法(因为string
类已被密封而无法完成此操作),请创建IComparer<string>
类并将其实例传递给Arrays.Sort()
。
public class StringLengthComparer : IComparer<string>
{
public int Compare(string x, string y)
{
if (x.Length > y.Length)
return 1;
if (x.Length < y.Length)
return -1;
return 0;
}
}
public class Program
{
static void Main(string[] args)
{
string[] arrayStrings =
new string[] { "a", "b", "the", "roof", "is", "on", "fire" };
Array.Sort(arrayStrings, new StringLengthComparer());
foreach (var item in arrayStrings)
{
Console.WriteLine(item);
}
}
}
输出:
a
b
is
on
the
roof
fire