【在C#中以降序对数组进行排序的不同方法】数组是一组类似类型的变量,它们由一个通用名称引用。每个数据项被称为数组的一个元素。将数组中的元素从大到小排列称为按降序排列数组。
例子:
Input : array = {5, 9, 1, 4, 6, 8};
Output : 9, 8, 6, 5, 4, 1Input : array = {1, 9, 6, 7, 5, 9};
Output : 9 9 7 6 5 1Input : array = {-8, 9, 7, 7, 0, 9, -9};
Output : 9 9 7 7 0 -8 -9
方法1:使用Array.Sort()和Array.Reverse()方法
首先,使用array.sort()方法对数组进行排序,该方法将数组按升序排序; 然后,使用array.reverse()方法将其颠倒过来。
//C# program sort an array in decreasing order
//using Array.Sort() and Array.Reverse() Method
using System;
class GFG {//Main Method
public static void Main()
{//declaring and initializing the array
int [] arr = new int [] {1, 9, 6, 7, 5, 9};
//Sort array in ascending order.
Array.Sort(arr);
//reverse array
Array.Reverse(arr);
//print all element of array
foreach ( int value in arr)
{
Console.Write(value + " " );
}
}
}
输出如下:
9 9 7 6 5 1
方法2:使用CompareTo()方法
你还可以使用CompareTo()方法以降序对数组进行排序。
//C# program sort an array in
//decreasing order using
//CompareTo() Method
using System;
class GFG {//Main Method
public static void Main()
{//declaring and initializing the array
int [] arr = new int [] {1, 9, 6, 7, 5, 9};
//Sort the arr from last to first.
//compare every element to each other
Array.Sort<
int>
(arr, new Comparison<
int>
(
(i1, i2) =>
i2.CompareTo(i1)));
//print all element of array
foreach ( int value in arr)
{
Console.Write(value + " " );
}
}
}
输出如下:
9 9 7 6 5 1
方法3:delegate委托
在这里, 首先使用匿名方法对委托进行Sort()。
//C# program sort an array
//in decreasing order
using System;
class GFG {//Main Method
public static void Main()
{//declaring and initializing the array
int [] arr = new int [] {1, 9, 6, 7, 5, 9};
//Sort the arr from last to first
//Normal compare is m-n
Array.Sort<
int>
(arr, delegate ( int m, int n)
{ return n - m;
});
//print all element of array
foreach ( int value in arr)
{
Console.Write(value + " " );
}
}
}
输出如下:
9 9 7 6 5 1
方法4:使用迭代方式
通过迭代方式对数组进行排序而不使用任何内置函数。
//C# program sort an array
//in decreasing order using
//iterative way
using System;
class GFG {//Main Method
public static void Main()
{
//declaring and initializing the array
int [] arr = new int [] {1, 9, 6, 7, 5, 9};
int temp;
//traverse 0 to array length
for ( int i = 0;
i <
arr.Length - 1;
i++)//traverse i+1 to array length
for ( int j = i + 1;
j <
arr.Length;
j++)//compare array element with
//all next element
if (arr[i] <
arr[j]) {temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}//print all element of array
foreach ( int value in arr)
{
Console.Write(value + " " );
}
}
}
输出如下:
9 9 7 6 5 1
方法5:使用LINQ降序
LINQ代表语言集成查询。它是一种统一的查询语法,用于检索和保存来自不同来源的数据。这里,使用orderby降序排序方法进行降序排序。LINQ返回IOrderedIEnumerable,使用ToArray()方法将其转换为Array。
//C# program sort an array in decreasing
//order by using LINQ OrderByDescending
//method
using System;
using System.Linq;
class GFG {//Main Method
public static void Main()
{//declaring and initializing the
//array with 6 positive number
int [] arr = new int [] {1, 9, 6, 7, 5, 9};
//Sort the arr in decreasing order
//and return a array
arr = arr.OrderByDescending(c =>
c).ToArray();
//print all element of array
foreach ( int value in arr)
{
Console.Write(value + " " );
}
}
}
输出如下:
9 9 7 6 5 1
推荐阅读
- 实现数据仓库有哪些困难()
- 在C#中创建对象的不同方法有哪些()
- 在Golang中连接两个字符串的不同方法
- 在Golang中比较字符串的不同方法
- 第02讲(Flink 入门程序 WordCount 和 SQL 实现)
- <技术向;修正昨天的爬取教程,并介绍一个插件
- <C语言;售货员问题
- 百度APP视频播放中的解码优化
- <还记得雪花吗;用画图深入理解递归