跳至頁尾內容
開發者更新

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的整數陣列,使用特定值初始化。

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# 初始化陣列(開發者工作方式):圖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# 初始化陣列(開發者工作方式):圖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因其多樣性和簡單性而突出,使其成為尋求可靠且靈活解決方案來處理PDF文件的C#開發者的寶貴工具。

4.1. 安裝IronPDF

要在您的C#項目中使用NuGet Package Manager Console安裝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!");
    }
}
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# 初始化陣列(開發者工作方式):圖3 - 上一個範例程式碼輸出的PDF文件

5. 結論

掌握C#中多樣的陣列初始化過程,包括基本方法、陣列初始化語法和動態方法,例如Enumerable.Range和LINQ,對於高效資料操作至關重要。 理解特別是在多維陣列中,陣列長度和秩的區別,確保準確處理。

本教程還介紹了IronPDF for PDF文件生成。 提供的範例展示了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 } };

如何使用Enumerable.Range在C#中初始化陣列?

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 Package Manager Console安裝類似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核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話