跳過到頁腳內容
.NET幫助

C# 初始化數組(對於開發者的運行原理)

數組是 C# 中的重要功能,它允許開發人員有效地儲存和操作資料集合。 初始化數組是將初始值賦給數組元素的過程。 本指南探討了C# 中初始化數組的各種技術和最佳實踐,深入分析了基本和高級數組初始化場景。

數組是將相同類型的元素儲存在連續記憶體位置中的集合。 在 C# 中,陣列用於有效地表示和操作結​​構化資料。 它們提供對單一數組元素的隨機訪問,從而可以輕鬆執行排序、搜尋和迭代等操作。

在本文中,我們將了解如何在 C# 程式語言中初始化數組變量,我們也將了解如何使用IronPDF for C# developers建立 PDF 文件數組。

1. 基本數組初始化

1.1 聲明與初始化

初始化數組最簡單的方法是在創建時聲明數組並賦值。 以下是使用方括號初始化整數數組的範例:

int[] numbers = { 1, 2, 3, 4, 5 };
int[] numbers = { 1, 2, 3, 4, 5 };
$vbLabelText   $csharpLabel

在這個例子中,宣告了一個名為numbers 的數組,並用五個整數值對其進行了初始化。 C# 會根據提供的元素數量自動推斷陣列大小。

1.2. 初始化時指定大小

可以透過明確指定數組大小,然後再賦值來初始化數組。 當需要動態調整陣列大小時,這種方法非常有用。 例如:

int[] dynamicArray = new int[5];
// The array is initialized with size 5, and the elements are [0, 0, 0, 0, 0]
// Later in the code...
dynamicArray[2] = 42;
// Now the array becomes [0, 0, 42, 0, 0]
int[] dynamicArray = new int[5];
// The array is initialized with size 5, and the elements are [0, 0, 0, 0, 0]
// Later in the code...
dynamicArray[2] = 42;
// Now the array becomes [0, 0, 42, 0, 0]
$vbLabelText   $csharpLabel

1.3. 預設值

如果聲明了一個數組但沒有明確初始化,則其元素將根據其資料類型被賦予預設值。對於數值類型,預設值為 0;對於引用類型,預設值為null 。 例如:

int[] uninitializedArray = new int[3];
// The elements of uninitializedArray are [0, 0, 0]
int[] uninitializedArray = new int[3];
// The elements of uninitializedArray are [0, 0, 0]
$vbLabelText   $csharpLabel

2. 初始化數組的值

2.1. 數組初始化語法

C# 提供了一種稱為陣列初始化器的簡潔語法,用於使用特定值初始化陣列。 這種語法允許您直接在花括號內指定值。 例如,你可以這樣初始化字串數組:

string[] names = { "Alice", "Bob", "Charlie" };
string[] names = { "Alice", "Bob", "Charlie" };
$vbLabelText   $csharpLabel

這將建立一個名為names的數組,其中包含三個元素,每個元素都以字串值初始化。

2.2 多維數組

除了一維數組,C# 還支援多維數組。 例如,二維數組可以如下初始化:

int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 } };
int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 } };
$vbLabelText   $csharpLabel

這裡,矩陣是一個 2x3 的整數數組,用特定值初始化。

3. 動態數組初始化

3.1. 使用 Enumerable.Range

對於需要使用一系列連續值初始化陣列的情況, Enumerable.Range非常有用。 它產生指定範圍內的數字序列。 請看以下範例:

using System.Linq;

int[] rangeArray = Enumerable.Range(1, 5).ToArray();
// The int array is initialized with values [1, 2, 3, 4, 5]
using System.Linq;

int[] rangeArray = Enumerable.Range(1, 5).ToArray();
// The int array is initialized with values [1, 2, 3, 4, 5]
$vbLabelText   $csharpLabel

當您需要一系列數字而不是單獨指定每個值時,這尤其方便。

C# 初始化陣列(開發者操作指南):圖 1 - Enumerable.Range 程式碼範例的控制台輸出

3.2. 使用 LINQ

LINQ(語言整合查詢)在 C# 中提供了強大的查詢功能。 您可以使用 LINQ 根據查詢表達式初始化陣列。 例如:

using System.Linq;

int[] evenNumbers = (from number in Enumerable.Range(1, 10)
                     where number % 2 == 0
                     select number).ToArray();
// The array is initialized with even values [2, 4, 6, 8, 10]
using System.Linq;

int[] evenNumbers = (from number in Enumerable.Range(1, 10)
                     where number % 2 == 0
                     select number).ToArray();
// The array is initialized with even values [2, 4, 6, 8, 10]
$vbLabelText   $csharpLabel

這種方法更具表現力,並且允許在數組初始化期間進行複雜的過濾和轉換。

C# 初始化陣列(開發者操作指南):圖 2 - 前一個 LINQ 程式碼範例的控制台輸出

4. IronPDF簡介

IronPDF: .NET PDF 程式庫是一個強大的 C# 程式庫,它為開發人員提供了在.NET應用程式中建立、操作和處理 PDF 文件的無縫功能。 無論您需要從 HTML 內容產生 PDF、修改現有文件或從 PDF 中提取數據, IronPDF提供了一套全面的功能。

IronPDF專門從事HTML 到 PDF 的轉換,確保佈局和樣式得以保留。 它是一款出色的工具,可以從網頁內容(例如報告、發票和文件)產生 PDF 文件。 HTML 檔案、URL 和 HTML 字串都可以轉換為 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");
    }
}
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");
    }
}
$vbLabelText   $csharpLabel

憑藉其用戶友好的 API,開發人員可以輕鬆地將 PDF 功能整合到他們的 C# 專案中,從而高效、動態地處理與 PDF 相關的任務。 IronPDF以其多功能性和簡潔性脫穎而出,對於尋求可靠、靈活的 PDF 文件處理解決方案的 C# 開發人員來說,它是一款非常有價值的工具。

4.1. 安裝IronPDF

若要使用NuGet套件管理器控制台在 C# 專案中安裝IronPDF ,請開啟 Visual Studio,從"檢視"功能表存取"套件管理器控制台",並確保已選取正確的專案。 運行命令:

Install-Package IronPdf

等待安裝程序完成,並透過控制台中的確認訊息以及檢查解決方案資源管理器中的"引用"部分來驗證是否成功。 IronPDF現在可以在您的 C# 應用程式中使用,它提供了強大的 PDF 生成和操作功能。

4.2. IronPDF:使用動態 PDF 初始化建立 PDF

以下範例展示如何使用IronPDF動態建立多個 PDF 文件:

using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Number of PDFs to generate
        int numberOfPDFs = 3;
        // Array to store PdfDocument objects
        PdfDocument[] pdfArray = new PdfDocument[numberOfPDFs];
        // Content for the PDFs
        string[] names = { "Alice", "Bob", "Charlie" };
        string[] ages = { "25", "30", "22" };
        // Instantiate ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Loop to create and customize each PdfDocument in the array
        for (int i = 0; i < numberOfPDFs; i++)
        {
            // Creating dynamic content using string interpolation
            string content = $@"<html>
                                <body>
                                    <h1>Hello, {names[i]}!</h1>
                                    <p>You are {ages[i]} years old.</p>
                                    <p>This is a dynamically generated PDF.</p>
                                </body>
                                </html>";
            // Create a PDF from HTML using ChromePdfRenderer
            pdfArray[i] = renderer.RenderHtmlAsPdf(content);
        }
        // Save each PDF to a file
        for (int i = 0; i < numberOfPDFs; i++)
        {
            pdfArray[i].SaveAs($"GeneratedPDF_{i + 1}.pdf");
        }
        Console.WriteLine("PDFs generated successfully!");
    }
}
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Number of PDFs to generate
        int numberOfPDFs = 3;
        // Array to store PdfDocument objects
        PdfDocument[] pdfArray = new PdfDocument[numberOfPDFs];
        // Content for the PDFs
        string[] names = { "Alice", "Bob", "Charlie" };
        string[] ages = { "25", "30", "22" };
        // Instantiate ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Loop to create and customize each PdfDocument in the array
        for (int i = 0; i < numberOfPDFs; i++)
        {
            // Creating dynamic content using string interpolation
            string content = $@"<html>
                                <body>
                                    <h1>Hello, {names[i]}!</h1>
                                    <p>You are {ages[i]} years old.</p>
                                    <p>This is a dynamically generated PDF.</p>
                                </body>
                                </html>";
            // Create a PDF from HTML using ChromePdfRenderer
            pdfArray[i] = renderer.RenderHtmlAsPdf(content);
        }
        // Save each PDF to a file
        for (int i = 0; i < numberOfPDFs; i++)
        {
            pdfArray[i].SaveAs($"GeneratedPDF_{i + 1}.pdf");
        }
        Console.WriteLine("PDFs generated successfully!");
    }
}
$vbLabelText   $csharpLabel
  1. 我們指定要產生的 PDF 數量( numberOfPDFs ),並建立一個PdfDocument物件陣列( pdfArray )來儲存產生的 PDF。
  2. 我們使用循環來初始化每個陣列元素類型。 在循環內部,我們使用字串插值為每個 PDF 建立動態內容,以包含來自對應陣列的姓名和年齡。
  3. 我們為每次迭代初始化一個新的PdfDocument對象,並使用IronPDF的 RenderHtmlAsPdf 方法新增 HTML 內容。
  4. 最後,我們將每個 PDF 檔案儲存為一個具有唯一名稱的檔案( GeneratedPDF_1.pdfGeneratedPDF_2.pdf等)。

4.2.1. 產生的 PDF 文件

C# 初始化陣列(開發者操作指南):圖 3 - 上一個程式碼範例輸出的 PDF 檔案

5. 結論

掌握 C# 中各種陣列初始化過程,包括基本方法、陣列初始化語法以及 Enumerable.Range 和 LINQ 等動態方法,對於高效資料操作至關重要。 理解數組長度和秩之間的區別,尤其是在多維數組中,可以確保準確處理。

本教學也介紹了用於產生 PDF 文件的IronPDF 。 提供的範例說明了 IronPDF 在動態生成個人化 PDF 方面的有效性,展現了其多功能性。 總而言之,對陣列初始化的紮實掌握,再加上IronPDF等工具,能夠幫助開發人員創建動態高效的應用程序,從而提高他們有效處理資料的能力。

IronPDF提供支援和文檔,以及如何使用該程式庫的教學。 它還提供免費試用許可證。 有關IronPDF HTML 轉 PDF 轉換的詳細教學課程,請造訪IronPDF HTML 轉 PDF 轉換指南

常見問題解答

在 C# 中初始化數组的基本技術是什么?

C# 中初始化數组的基本技術包括在创建時用方括号声明數组并分配值。例如,你可以这样初始化一個整數數组:int[] numbers = { 1, 2, 3, 4, 5 };

在 C# 中,我可以在初始化時指定數组的大小嗎?

是的,你可以在初始化時指定數组的大小。比如,你可以声明一個具有特定大小的數组并在後面分配值:int[] dynamicArray = new int[5]; dynamicArray[2] = 42;

在 C# 中,未初始化的數组元素的默認值是什么?

在 C# 中,如果數组被声明但未被初始化,其元素具有默認值。對于數值类型,默認為 0;對于引用类型,则是 null

我如何在 C# 中初始化多维數组?

在 C# 中,多维數组可以使用嵌套的大括号来初始化。例如,二维數组可以初始化為:int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 } };

我如何在 C# 中使用 Enumerable.Range 来進行數组初始化?

Enumerable.Range 對于生成一系列數字以初始化數组非常有用。例如,你可以这样创建一個有序數值的數组:int[] rangeArray = Enumerable.Range(1, 5).ToArray();

在 C# 中,LINQ 是如何被用于初始化數组的?

LINQ 可以通過查詢數据并将結果轉换為數组来初始化數组。例如,要创建一個偶數數组,你可以使用:int[] evenNumbers = (from number in Enumerable.Range(1, 10) where number % 2 == 0 select number).ToArray();

我如何使用 C# 從動态內容生成 PDF 文檔?

你可以使用像 IronPDF 这样的庫在 C# 中從動态內容生成 PDF 文檔。它允許你将 HTML 內容渲染為 PDF,非常適合创建動态和個性化的 PDF 文檔。

在 C# 項目中怎样集成 PDF 功能?

要在 C# 項目中集成 PDF 功能,你可以使用 NuGet 包管理器控制台使用命令安装像 IronPDF 这样的庫:Install-Package IronPDF。該庫使你能够在應用程序內创建和操作 PDF。

使用 C# 庫進行 PDF 生成有哪些好處?

使用像 IronPDF 这样的 C# 庫生成 PDF 的好處包括将 HTML 轉换為 PDF、從動态內容生成 PDF 以及從 PDF 中提取數据,这些都增強了開發人员處理复杂文檔處理任务的能力。

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

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me