跳至页脚内容
.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创建和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 的整数数组,用特定值初始化。

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(集成语言查询)在 C# 中提供了强大的查询功能。 您可以使用 LINQ 根据查询表达式来初始化数组。 PDF创建和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 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 包管理器控制台在您的 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!");
    }
}
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.pdf, GeneratedPDF_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 to PDF conversion guide

常见问题解答

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文档?

您可以在C#中使用IronPDF等库从动态内容生成PDF文档。它允许您将HTML内容呈现为PDF,非常适合创建动态和个性化的PDF文档。

将PDF功能集成到C#项目中的过程是什么?

要将PDF功能集成到C#项目中,您可以使用NuGet包管理器控制台安装IronPDF库,命令为:Install-Package IronPdf。此库使您能够在应用程序中创建和操作PDF。

使用C#库进行PDF生成有哪些好处?

使用C#库进行PDF生成,如IronPDF,提供了将HTML转换为PDF、从动态内容生成PDF和从PDF中提取数据等好处,这些都增强了开发人员处理复杂文档处理任务的能力。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。