技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

C# List Sort 数值升序、降序、按数字的第一位排序

作者:admin    时间:2021-5-18 14:38:34    浏览:

对C# List集合进行排序,需要用到Sort()方法,默认情况下,Sort()是按升序排序,而有时我们要按降序排列时,写法便有所不同了,甚至有时候要求按数字的第一位排序,写法又会不一样。

 C# List Sort 数值排序
C# List Sort 数值排序

List按升序排序

C#有个函数Sort(),默认是按升序排序,可直接应用于对List集合的排序。

示例

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>() { 20, 10, 3, 40 };
        numbers.Sort();

        Console.WriteLine(":::按升序排序:::");
        foreach (var result in numbers)
        {
            Console.WriteLine(result);
        }
    }
}
 

输出结果

:::按升序排序:::
3
10
20
40

List按降序排序

要让Sort()按降序排序,要用到CompareTo()比较函数。

C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大,小,相等。默认List的排序是升序排序。

在比较函数CompareTo()中,如果 x>y return 1;则是按照升序排列。如果x>y return -1;则是按照降序排列。这就是1和-1大小的含义。其实你非要这么写 x<y return 1;则也表示降序排列。不过大家一般习惯x>y return 1;升序,如果想要降序只需return -1;即可。

系统List默认的排序是升序,如果你想要降序,可以直接在比较函数前面加个负号,把返回结果由1变成-1即可。

示例

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>() { 20, 10, 3, 40 };
        numbers.Sort((x, y) => -x.CompareTo(y));

        Console.WriteLine(":::按降序排序:::");
        foreach (var result in numbers)
        {
            Console.WriteLine(result);
        }
    }
}
 

输出结果

:::按降序排序:::
40
20
10
3
 

List按数字的第一位排序

有时候,需要按数字的第一位排序时,又该怎样写这个代码呢?

其实,我们只需把集合的元素第一位先转化为字符,再进行排序,即可。

示例

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>() { 20, 10, 3, 40 };
        numbers.Sort((a, b) => (a.ToString()[0].CompareTo(b.ToString()[0])));

        Console.WriteLine(":::按数字的第一位排序:::");
        foreach (var result in numbers)
        {
            Console.WriteLine(result);
        }
    }
}
 

输出结果

:::按数字的第一位排序:::
10
20
3
40

标签: List方法  Sort排序  
x
  • 站长推荐
/* 左侧显示文章内容目录 */