技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

C# List Sort 數(shù)值升序、降序、按數(shù)字的第一位排序

作者:admin    時(shí)間:2021-5-18 14:38:34    瀏覽:

對(duì)C# List集合進(jìn)行排序,需要用到Sort()方法,默認(rèn)情況下,Sort()是按升序排序,而有時(shí)我們要按降序排列時(shí),寫(xiě)法便有所不同了,甚至有時(shí)候要求按數(shù)字的第一位排序,寫(xiě)法又會(huì)不一樣。

 C# List Sort 數(shù)值排序
C# List Sort 數(shù)值排序

List按升序排序

C#有個(gè)函數(shù)Sort(),默認(rèn)是按升序排序,可直接應(yīng)用于對(duì)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);
        }
    }
}
 

輸出結(jié)果

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

List按降序排序

要讓Sort()按降序排序,要用到CompareTo()比較函數(shù)。

C#中的List的Sort函數(shù)中的比較函數(shù)CompareTo有三種結(jié)果 1, -1 ,0分別代表大,小,相等。默認(rèn)List的排序是升序排序。

在比較函數(shù)CompareTo()中,如果 x>y return 1;則是按照升序排列。如果x>y return -1;則是按照降序排列。這就是1和-1大小的含義。其實(shí)你非要這么寫(xiě) x<y return 1;則也表示降序排列。不過(guò)大家一般習(xí)慣x>y return 1;升序,如果想要降序只需return -1;即可。

系統(tǒng)List默認(rèn)的排序是升序,如果你想要降序,可以直接在比較函數(shù)前面加個(gè)負(fù)號(hào),把返回結(jié)果由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);
        }
    }
}
 

輸出結(jié)果

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

List按數(shù)字的第一位排序

有時(shí)候,需要按數(shù)字的第一位排序時(shí),又該怎樣寫(xiě)這個(gè)代碼呢?

其實(shí),我們只需把集合的元素第一位先轉(zhuǎn)化為字符,再進(jìn)行排序,即可。

示例

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(":::按數(shù)字的第一位排序:::");
        foreach (var result in numbers)
        {
            Console.WriteLine(result);
        }
    }
}
 

輸出結(jié)果

:::按數(shù)字的第一位排序:::
10
20
3
40

標(biāo)簽: List方法  Sort排序  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */