首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET Array 類別 Sort 方法完整指南:從基本排序到自訂物件比較

     編輯:關於.NET

Array.Sort 靜態方法概述

Array.Sort 是 .NET 中對陣列進行排序最簡單、最常用的方式。它提供多種多載,支援單一陣列排序、雙陣列鍵值對應排序、部分區間排序,以及自訂比較邏輯。

基本用法範例

以下 VB.NET 程式碼示範對字串陣列進行預設字母排序:

Dim names(3) As String
names(0) = "Howard, Ryan"
names(1) = "Allen, Ray"
names(2) = "Pujols, Albert"
names(3) = "Iverson, Allen"

' 排序前
For x = 0 To names.Length - 1
    Console.WriteLine(x & ". " & names(x))
Next

Array.Sort(names)

' 排序後
For x = 0 To names.Length - 1
    Console.WriteLine(x & ". " & names(x))
Next

輸出結果將由 Howard, Ryan、Allen, Ray... 變為依字母序排列的 Allen, Ray、Howard, Ryan、Iverson, Allen、Pujols, Albert。

常用多載一覽

  • Sort(Array):對整個一維陣列排序。
  • Sort(Array, Array):依第一個陣列(鍵)排序第二個陣列(值)。
  • Sort(Array, IComparer):使用自訂比較器排序。
  • Sort(Array, Int32, Int32):只排序指定索引範圍。
  • Sort(Array, Array, Int32, Int32):依鍵陣列對指定範圍的值陣列排序。
  • Sort(Array, Int32, Int32, IComparer):指定範圍且使用自訂比較器。
  • Sort(Array, Array, Int32, Int32, IComparer):完整控制鍵值對、範圍與比較邏輯。

鍵值對應排序實戰

當需要根據數值鍵對應排序字串時,可使用雙陣列多載:

int[] keys = { 11, 3, 8, 5 };
string[] names = { "Howard, Ryan", "Allen, Ray", "Pujols, Albert", "Iverson, Allen" };
// 只對索引 1~2(第 2、3 個元素)排序
Array.Sort(keys, names, 1, 2);

執行後 names 陣列中對應 keys 為 3、8 的兩筆資料會被重新排序,其餘位置不變。

自訂型別排序:實作 IComparable

若要排序自訂類別(如 Person),該類別必須實作 IComparable 介面並提供 CompareTo 方法:

Public Class Person
    Implements IComparable

    Public Property FirstName As String
    Public Property LastName As String

    Public Function CompareTo(obj As Object) As Integer Implements IComparable.CompareTo
        Dim other = DirectCast(obj, Person)
        Return Me.FirstName.CompareTo(other.FirstName)
    End Function
End Class

接著即可直接呼叫 Array.Sort(personArray),執行時會自動依 FirstName 排序。

總結

Array.Sort 靈活強大,從簡單陣列到複雜鍵值對、部分排序、自訂比較皆能輕鬆應對。善用多載與介面,能大幅簡化排序邏輯程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved