如何在 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"]
本文内容总结: