如何在 C# 中对数组进行排序?

本文关键字:排序 数组 | 更新日期: 2023-09-18 11:27:34

我们可以通过两种方式对一维数组进行排序,使用 Array.Sort() 方法和使用 LINQ 查询。

Array.Sort()

Array 是静态帮助程序类,它包含 C# 中所有类型的数组的所有实用工具方法。Array.Sort() 方法用于以不同的方式对数组进行排序。

下面的示例按升序对数组进行排序。

示例: Sort an Array

string[] animals = { "Cat", "Alligator", "Fox", "Donkey", "Bear", "Elephant", "Goat" };
Array.Sort(animals); // Result: ["Alligator", "Bear", "Cat","Donkey","Elephant","Fox","Goat"]

下面的示例仅对数组的前三个元素进行排序。

示例: Sort the Portion of Array

string[] animals = { "Cat", "Alligator", "Fox", "Donkey", "Bear", "Elephant", "Goat" };
          
Array.Sort(animals, 0, 3); // Result: ["Alligator","Cat","Fox", "Donkey", "Bear", "Elephant", "Goat"]

在上面的例子中,我们传递了起始索引 0 和长度 3。因此,它将从索引 0 开始对三个元素进行排序。

下面的示例对两个不同的数组进行排序,其中一个数组包含键,另一个数组包含值。

示例: Sort Keys and Values

int[] numbers = { 2, 1, 4, 3 };
String[] numberNames = { "two", "one", "four", "three" };
Array.Sort(numbers, numberNames);
Array.ForEach<int>(numbers, n => Console.WriteLine(n));//[1,2,3,4]
Array.ForEach<string>(numberNames, s => Console.WriteLine(s));//["one", "two", "three", "four"]

Array.Reverse() 方法颠倒了一维数组或数组部分中元素的顺序。请注意,它不会按降序对数组进行排序,而是颠倒现有元素的顺序。

示例: Sort an Array in Descending Order

string[] animals = { "Cat", "Alligator", "Fox", "Donkey", "Bear", "Elephant", "Goat" };
 
Array.Reverse(animals);// Result: ["Goat", "Fox", "Elephant", "Donkey", "Cat", "Bear", "Alligator"]

因此,Array.Sort() 方法易于使用,并且比 LINQ 查询执行得更快。

使用 LINQ 对数组进行排序 ( Sort an Array using LINQ )

可以使用 LINQ 对数组进行排序。

示例: Sort an Array using LINQ

string[] animals = { "Cat", "Alligator", "Fox", "Donkey", "Bear", "Elephant", "Goat" };
 
var sortedStr = from name in animals
                orderby name
                select name;
 
Array.ForEach<string>(sortedStr.ToArray<string>(), s => Console.WriteLine(s)); 

您可以轻松地按降序对数组进行排序。

示例: Sort an Array using LINQ

var sortedStr = from name in animals
                orderby name descending 
                select name;
  
Array.ForEach<string>(sortedStr.ToArray<string>(), s => Console.WriteLine(s)); // Result: ["Goat", "Fox", "Elephant", "Donkey", "Cat", "Bear", "Alligator"]


本文内容总结: