当前位置:首页>开发>正文

system.array用于数组元素排序的方法

2024-06-27 00:02:26 互联网 未知 开发

system.array用于数组元素排序的方法?

system.array用于数组元素排序的方法

System.Array类提供了多种排序方法,包括以下几种常用的方法:


1. Sort(Array array):对指定的数组进行排序,根据元素的默认顺序进行比较。

```csharp

int[] numbers = { 5, 2, 7, 1, 3 }

Array.Sort(numbers)

```


2. Sort(Array array, IComparer comparer):对指定数组中的元素进行排序,使用自定义的比较器进行比较。

```csharp

string[] names = { "Bob", "Alice", "John", "Dave" }

Array.Sort(names, StringComparer.CurrentCulture)

```


3. Sort(Array array, Array keys):根据一个数组的键对另一个数组进行排序。

```csharp

string[] names = { "Bob", "Alice", "John", "Dave" }

int[] ages = { 25, 30, 20, 35 }

Array.Sort(ages, names)

```


4. Sort(Array array, Array keys, IComparer comparer):根据一个数组的键对另一个数组进行排序,使用自定义的比较器进行比较。

```csharp

string[] names = { "Bob", "Alice", "John", "Dave" }

int[] ages = { 25, 30, 20, 35 }

Array.Sort(ages, names, Comparer.Default)

```


5. Sort(Array array, int index, int length):对指定数组的部分元素进行排序。

```csharp

int[] numbers = { 5, 2, 7, 1, 3 }

Array.Sort(numbers, 1, 3)

```


需要注意的是,以上方法会直接修改原始数组的顺序。如果不想修改原始数组,可以使用以下方法创建一个新的排序后的数组:


```csharp

int[] numbers = { 5, 2, 7, 1, 3 }

in

其实就是让你写一个类,实现IComparable接口,再通过调用Sort方法对该类的实例(一维数组)排序。   class Student:IComparable         {             private string name             private int score             public int CompareTo(object obj)             {                 Student _obj = obj as Student                 if (_obj != null)                 {                     return this.score.CompareTo(_obj.score)                 }                 else                     throw new ArgumentException("Object is not a Student !")             }         }