跳過到頁腳內容
.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 };
Dim numbers() As Integer = { 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]
Dim dynamicArray(4) As Integer
' 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]
Dim uninitializedArray(2) As Integer
' The elements of uninitializedArray are [0, 0, 0]
$vbLabelText   $csharpLabel

2.使用值初始化陣列。

2.1.陣列初始化器語法。

C# 提供了一種簡潔的語法,稱為陣列初始化器,用來初始化具有特定值的陣列。 此語法允許您直接在大括弧內指定值。 例如,您可以如此初始化字串陣列:

string[] names = { "Alice", "Bob", "Charlie" };
string[] names = { "Alice", "Bob", "Charlie" };
Dim names() As String = { "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 } };
Dim matrix(,) As Integer = {
	{ 1, 2, 3 },
	{ 4, 5, 6 }
}
$vbLabelText   $csharpLabel

在此,matrix 是一個 2x3 ints 陣列,並以特定值初始化。

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]
Imports System.Linq

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

當您需要一連串的數字,而不是單獨指定每個數值時,這會特別方便。

C# Initialize Array (How It Works For Developers):圖 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]
Imports System.Linq

Private evenNumbers() As Integer = (from number in Enumerable.Range(1, 10) where number Mod 2 = 0 select number).ToArray()
' The array is initialized with even values [2, 4, 6, 8, 10]
$vbLabelText   $csharpLabel

這種方法更具表達力,並允許在陣列初始化過程中進行複雜的篩選和轉換。

C# Initialize Array (How It Works For Developers):圖 2 - 前一個 LINQ 程式碼範例的控制台輸出

4.介紹 IronPdf

IronPDF:.NET PDF Library 是一個功能強大的 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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

透過其友善的 API,開發人員可以輕鬆地將 PDF 功能整合到 C# 專案中,有效且動態地處理 PDF 相關工作。 IronPDF 以其多功能性和簡易性脫穎而出,使其成為 C# 開發人員尋求可靠、靈活的解決方案來處理 PDF 檔案的重要工具。

4.1.安裝 IronPdf

若要使用 NuGet Package Manager Console 在您的 C# 專案中安裝 IronPDF,請開啟 Visual Studio,從"檢視"功能表存取 Package Manager Console,並確認已選取正確的專案。 執行指令:

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!");
    }
}
Imports IronPdf
Imports System

Friend Class Program
	Shared Sub Main()
		' Number of PDFs to generate
		Dim numberOfPDFs As Integer = 3
		' Array to store PdfDocument objects
		Dim pdfArray(numberOfPDFs - 1) As PdfDocument
		' Content for the PDFs
		Dim names() As String = { "Alice", "Bob", "Charlie" }
		Dim ages() As String = { "25", "30", "22" }
		' Instantiate ChromePdfRenderer
		Dim renderer = New ChromePdfRenderer()
		' Loop to create and customize each PdfDocument in the array
		For i As Integer = 0 To numberOfPDFs - 1
			' Creating dynamic content using string interpolation
			Dim content As String = $"<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)
		Next i
		' Save each PDF to a file
		For i As Integer = 0 To numberOfPDFs - 1
			pdfArray(i).SaveAs($"GeneratedPDF_{i + 1}.pdf")
		Next i
		Console.WriteLine("PDFs generated successfully!")
	End Sub
End Class
$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# Initialize Array (How It Works For Developers):圖 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();.

如何利用 LINQ 在 C# 中初始化陣列?

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 文件的理想選擇。

將 PDF 功能整合至 C# 專案的流程為何?

若要在 C# 專案中整合 PDF 功能,您可以使用 NuGet 套件管理員控制台,以下列指令安裝 IronPDF 之類的函式庫:Install-Package IronPdf。這個函式庫可讓您在應用程式中建立並處理 PDF。

使用 C# 函式庫產生 PDF 有什麼好處?

使用 C# 函式庫來產生 PDF,例如 IronPDF,可以提供將 HTML 轉換為 PDF、從動態內容產生 PDF,以及從 PDF 擷取資料等優點,這些都能增強開發人員處理複雜文件處理工作的能力。

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

Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。

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

他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。