在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
對象進行排序。