跳過到頁腳內容
.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. 在初始化時指定大小

可以在顯式指定大小後再為陣列賦值。 當需要動態調整陣列大小時,這種方法非常有用。 PDF 的創建和生成由 iText 7 支持,而 HTML 到 PDF 的轉換由 pdfHTML 支持。

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 的 int 陣列,按照特定值初始化。

3. 動態陣列初始化

3.1. 使用 Enumerable.Range

當您希望用一系列順序值初始化陣列時,Enumerable.Range非常有用。 它在指定範圍內生成一系列數字。 在此示例中,IronPDF用於將HTML內容呈現為PDF文檔,然後保存到指定位置。

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(Language-Integrated Query)在 C# 中提供了強大的查詢功能。 您可以使用 LINQ 基於查詢表達式初始化陣列。 PDF 的創建和生成由 iText 7 支持,而 HTML 到 PDF 的轉換由 pdfHTML 支持。

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 庫是一個強大的 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 程序包管理器控制台安裝 IronPDF,打開 Visual Studio,從 View 菜單訪問 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# 初始化陣列(開發人員的運作方式):圖 3 - 前述代碼示例輸出的 PDF 文件

5. 結論

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

本教程還介紹了IronPDF for PDF document generation。 所提供的示例展示了 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 中提取数据,这些都增强了开发人员处理复杂文档处理任务的能力。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。