IRONSOFTWAREHOME
開發者更新

C# 陣列排序(開發者的工作原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年7月19日

陣列在C#編程中扮演著至關重要的角色,提供了一種方便的方式來儲存和操作資料集合。 在使用陣列時,一個基本操作是排序,而在本文中,我們將探索多種在C#中建立已排序陣列的方法。 到最後,您將不僅理解陣列排序的基礎知識,還會發現如何利用C#提供的強大排序功能。

理解陣列的基礎

在我們深入排序之前,讓我們重溫一下C#中陣列的基礎知識。 陣列是相同資料型別元素的集合,儲存在連續的記憶體位置中。 它們在使用索引標記法存取元素時提供了高效。

最簡單的方法:Array.Sort()

C#為排序陣列簡化了指定的陣列方法,Sort()。 此方法是多功能的,可以用於各種資料型別的陣列元素。這裡有一個一維陣列的快速範例:

int[] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers);

上述程式碼將陣列元素按升序排列,使其成為{ 1, 2, 5, 7, 8 }。

使用IComparer進行自定義排序

雖然**Array.Sort()方法對於簡單情境非常方便,但您可能會遇到需要自定義排序順序的情況。 這就是IComparer**接口發揮作用的地方。 通過實現此接口,您可以定義用於排序陣列的比較邏輯。

using System.Collections;

class CustomComparer : IComparer
{
    public int Compare(object x, object y)
    {
        int a = (int)x;
        int b = (int)y;
        // Compare a and b to order them descending
        return b.CompareTo(a);
    }
}

int[] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers, new CustomComparer());

物件排序:IComparable和IComparer

對自訂物件的陣列進行排序需要實現IComparable接口,或使用IComparer對物件進行排序。 這使得排序算法能夠理解您的物件的比較規則。 以下程式碼展示了基於年齡排序 Person物件陣列的邏輯:

using System;

class Person : IComparable<Person>
{
    public string Name { get; set; }
    public int Age { get; set; }

    public int CompareTo(Person other)
    {
        // Compare Persons by age
        return this.Age.CompareTo(other.Age);
    }
}

// Array of people
Person[] people = 
{
    new Person { Name = "Alice", Age = 30 },
    new Person { Name = "Bob", Age = 25 }
};
// Sort by age
Array.Sort(people);

Array.Reverse():顛倒順序

排序陣列後,您可能需要顛倒順序。 C#提供了**Array.Reverse()**方法正是為了這一目的。

int[] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers);

現在,numbers陣列將會是{ 5, 4, 3, 2, 1 }。

善用LINQ

對於喜歡更具聲明風格來排序陣列的人,可以使用LINQ(語言整合查詢)來排序陣列。 OrderBy方法可以用來升序排序,OrderByDescending方法可以用來降序排序。 這些方法提供了一種簡明的方法來達到排序。 以下範例利用了LINQ查詢語法:

using System.Linq;

int[] numbers = { 5, 2, 8, 1, 7 };
var sortedNumbers = numbers.OrderBy(x => x).ToArray();

介紹IronPDF

C# Array Sort (How It Works For Developer): 圖1 - IronPDF網頁

了解更多關於IronPDF的資訊是一個強大的C#程式庫,它簡化了直接從HTML建立、修改和操作PDF文件的過程。 無論您是生成報告、發票,還是其他任何動態內容,IronPDF提供了一個無縫的解決方案,允許您利用C#的力量完成與PDF相關的任務。

IronPDF將網頁和HTML轉換為PDF,並保留原始格式。 它無縫整合到.NET專案中,使開發者能夠自動化PDF生成並改善工作流程。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

安裝IronPDF:快速開始

要在您的C#專案中開始利用IronPDF,您可以輕鬆安裝IronPDF NuGet套件。 在您的套件管理器控制台中使用以下命令:

PM > Install-Package IronPdf

或者,您可以在NuGet套件管理器中搜尋"IronPDF"並從那裡安裝。

C# Array Sort (How It Works For Developer): 圖2 - 在NuGet套件管理器中瀏覽IronPDF套件

使用IronPDF生成PDF

使用IronPDF建立PDF是直觀的。 讓我們考慮一個簡單的例子,我們從使用IronPDF的HTML字串建立PDF:

var htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";

// Create a new PDF document
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(htmlContent).SaveAs("GeneratedDocument.pdf");

在這個範例中,我們使用IronPDF將HTML內容渲染為一個PDF文件。 生成的PDF,"GeneratedDocument.pdf",被保存到指定位置。 若要獲取有關如何生成PDF的更詳細資訊,請存取IronPDF文件頁面。

使用IronPDF的陣列排序

現在,問題出現了:我們之前探討的陣列排序技術能否無縫整合到IronPDF中? 答案是肯定的。

考慮一個場景,您有一個資料陣列,您希望在PDF中以表格式呈現。 您可以利用陣列排序在生成PDF之前組織資料,以確保輸出更具有結構且更便於使用。

using System.Linq;

// Sample array of data
string[] names = { "Alice", "Charlie", "Bob", "David" };

// Sorting the array alphabetically
Array.Sort(names);

// Generating PDF content with sorted data
var sortedPdfContent = $@"
    <html>
    <body>
        <h1>Sorted Names</h1>
        <ul>
            {string.Join("", names.Select(name => $"<li>{name}</li>"))}
        </ul>
    </body>
    </html>
";

// Create a new PDF document with sorted data
var sortedPdfDocument = new IronPdf.ChromePdfRenderer();
sortedPdfDocument.RenderHtmlAsPdf(sortedPdfContent).SaveAs("SortedNames.pdf");

在這個範例中,名稱陣列按字母順序排序,然後再將其併入HTML內容中。 生成的PDF,"SortedNames.pdf",將以排序順序顯示名稱。

C# Array Sort (How It Works For Developer): 圖3 - 前述程式碼的PDF輸出

結論

總之,掌握C#中的陣列排序對於高效的資料操作至關重要。 無論您正在處理簡單的數字陣列還是複雜的物件,C#提供了多種工具來滿足您的排序需求。 通過理解**Array.Sort()的基礎,使用IComparer**進行的自定義排序,以及使用LINQ來達成更具表現力的方法,您可以在您的C#專案中高效且優雅地處理陣列。

將IronPDF整合到您的C#專案中,不僅提供了一個強大的PDF生成工具,還允許將陣列排序無縫整合到您的文件建立工作流程中。 無論您是在組織表格資料還是建立動態報告,陣列排序和IronPDF之間的協同作用將使您能夠在C#中提升您的文件生成能力。 所以,擁抱C#陣列中的排序威力,提升您的編程技能!

IronPDF提供免費試用授權來測試其完整功能以供商業使用。 其永久商業授權起始於$999。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起