阅读量:0
在C#中,Array.Sort()
方法支持多种数据类型进行排序。这些数据类型包括:
- 基本数据类型:如
int
,short
,byte
,sbyte
,long
,ulong
,float
,double
,decimal
等。 - 字符串类型:
string
类型也是可排序的。 - 枚举类型:如果你有一个枚举类型,你也可以使用
Array.Sort()
对其进行排序。 - 自定义类型:对于自定义类型,只要该类型实现了
IComparable
接口或者提供了IComparer<T>
的比较器,Array.Sort()
也可以对其进行排序。
这里有一个简单的例子,展示了如何使用 Array.Sort()
对不同类型的数组进行排序:
using System; class Program { static void Main() { // 对基本数据类型的数组进行排序 int[] intArray = { 5, 2, 9, 1, 5, 6 }; Array.Sort(intArray); Console.WriteLine("Sorted integers:"); foreach (int num in intArray) { Console.Write(num + " "); } Console.WriteLine(); // 对字符串类型的数组进行排序 string[] strArray = { "apple", "banana", "cherry", "date" }; Array.Sort(strArray); Console.WriteLine("Sorted strings:"); foreach (string str in strArray) { Console.Write(str + " "); } Console.WriteLine(); // 对自定义类型的数组进行排序(假设有一个名为 Person 的类,并实现了 IComparable 接口) Person[] personArray = new Person[] { new Person { Name = "Alice", Age = 30 }, new Person { Name = "Bob", Age = 25 }, new Person { Name = "Charlie", Age = 35 } }; Array.Sort(personArray); Console.WriteLine("Sorted persons by age:"); foreach (Person person in personArray) { Console.Write($"{person.Name} ({person.Age}) "); } Console.WriteLine(); } } class Person { public string Name { get; set; } public int Age { get; set; } public override int CompareTo(object obj) { if (obj is Person other) { return this.Age.CompareTo(other.Age); } throw new ArgumentException("Object must be of type Person"); } }
注意:在上面的例子中,Person
类实现了 IComparable<Person>
接口,并重写了 CompareTo()
方法,以便根据年龄对 Person
对象进行排序。