跳至页脚内容
.NET 帮助

C# 数组长度(开发人员如何使用)

数组是 C# 中的基础数据结构,使开发人员能够存储和操作元素集合。 处理数组的一个关键方面是了解数组的长度,因为它直接影响我们如何访问、操作和迭代数组元素。 数组有多种类型,并且可以是多个维度的,例如一维数组、交错数组或多维数组。

在本全面指南中,我们将深入探讨C# 数组长度属性的概念,涵盖其重要性、确定方法和最佳实践。 我们还可以使用 C# 数组和C# PDF 库 IronPDF创建和查找 PDF 数组。

1. 什么是数组长度?

在 C# 中,数组的长度表示它可以容纳的元素数量。 不像一些动态数据结构,数组的大小在初始化时是固定的(如三维整数数组)。 数组长度是一个关键参数,影响各种操作并确保正确的内存分配。

2. 确定数组长度

2.1. 使用 Length 属性

通过Length属性检索 C# 数组中元素的长度是最直接的方法。 此属性是所有数组实例固有的,而Length属性返回元素的总数。

int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = numbers.Length; // arrayLength will be 5
int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = numbers.Length; // arrayLength will be 5
Dim numbers() As Integer = { 1, 2, 3, 4, 5 }
Dim arrayLength As Integer = numbers.Length ' arrayLength will be 5
$vbLabelText   $csharpLabel

2.2. 循环迭代

虽然效率低于使用Length属性变量,但通过循环遍历数组也可以确定其长度。

int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = 0;
foreach (var item in numbers)
{
    arrayLength++;
}
// arrayLength will be 5
int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = 0;
foreach (var item in numbers)
{
    arrayLength++;
}
// arrayLength will be 5
Dim numbers() As Integer = { 1, 2, 3, 4, 5 }
Dim arrayLength As Integer = 0
For Each item In numbers
	arrayLength += 1
Next item
' arrayLength will be 5
$vbLabelText   $csharpLabel

特别是在处理大型数组时,使用Length属性是首选效率更高的方法。

3. 数组长度与数组秩

了解数组长度与数组秩的区别至关重要。 长度指的是一维数组中的元素总数,如上例所示。 而秩则表示多维数组中的维度数量。

int[] dimension = new int[5]; // One-dimensional int array, Length: 5, Rank: 1
string[,] dimensionTwo = new string[3, 4]; // Two-dimensional string array, Length: 3 * 4 = 12, Rank: 2
int[] dimension = new int[5]; // One-dimensional int array, Length: 5, Rank: 1
string[,] dimensionTwo = new string[3, 4]; // Two-dimensional string array, Length: 3 * 4 = 12, Rank: 2
Dim dimension(4) As Integer ' One-dimensional int array, Length: 5, Rank: 1
Dim dimensionTwo(2, 3) As String ' Two-dimensional string array, Length: 3 * 4 = 12, Rank: 2
$vbLabelText   $csharpLabel

区分这些概念对于正确初始化、操作、控制和访问多维数组和一维数组是必不可少的。

4. 最佳实践和注意事项

4.1. 数组长度和索引

在访问数组中的元素时,始终确保索引在数组长度的范围内。 尝试访问超出有效值范围的索引将导致IndexOutOfRangeException

int[] numbers = { 1, 2, 3, 4, 5 };
// Incorrect usage leading to IndexOutOfRangeException
// int value = numbers[10]; // Avoid accessing elements beyond the array length
int[] numbers = { 1, 2, 3, 4, 5 };
// Incorrect usage leading to IndexOutOfRangeException
// int value = numbers[10]; // Avoid accessing elements beyond the array length
Dim numbers() As Integer = { 1, 2, 3, 4, 5 }
' Incorrect usage leading to IndexOutOfRangeException
' int value = numbers[10]; // Avoid accessing elements beyond the array length
$vbLabelText   $csharpLabel

4.2. 动态调整大小

请记住,数组的长度在初始化后是固定的。 如果需要动态调整大小,请考虑使用其他数据结构,如能够动态增长或收缩的List

List<int> dynamicList = new List<int>();
dynamicList.Add(1);
dynamicList.Add(2);
// No fixed length; the list can dynamically grow
List<int> dynamicList = new List<int>();
dynamicList.Add(1);
dynamicList.Add(2);
// No fixed length; the list can dynamically grow
Dim dynamicList As New List(Of Integer)()
dynamicList.Add(1)
dynamicList.Add(2)
' No fixed length; the list can dynamically grow
$vbLabelText   $csharpLabel

5. IronPDF 介绍

C# 数组长度(开发人员的工作原理):图 1 - IronPDF 网页

IronPDF 是一个强大的 C# 库,使开发人员能够在其 .NET 应用程序中创建、操控和渲染 PDF 文档。 无论您是在处理网络应用程序、桌面应用程序还是任何其他 .NET 项目,IronPDF 都简化了 PDF 的处理流程,提供了一套强大的功能来生成、编辑和处理 PDF 文件。

IronPDF 的突出特点是其HTML 到 PDF 转换功能,它会保持您的布局和样式不变。 它能够从网页内容生成 PDF,非常适合用于报告、发票和文档。 HTML 文件、网址和 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

通过 IronPDF,开发人员可以无缝地将 PDF 功能集成到他们的应用程序中,允许创建动态和交互式的 PDF 文档。 它支持多种任务,包括从 HTML 生成 PDF,向现有 PDF 中添加文本和图像,从 PDF 中提取数据等等。

5.1. 安装 IronPDF

使用 NuGet 包管理器控制台安装 IronPDF:

Install-Package IronPdf

这个命令将 IronPDF 库及其依赖项下载并安装到您的 .NET 项目中。 安装后,您可以通过导入必要的命名空间开始在您的应用程序中使用 IronPDF。

5.2. IronPDF:使用 C# 数组查找 PDF 数组长度

using IronPdf;
using System;
using System.Linq;

class Program
{
    public static void Main()
    {
        // PDF files to open
        string[] pdfFiles = { "GeneratedPDF_1.pdf", "GeneratedPDF_2.pdf", "GeneratedPDF_3.pdf" };
        PdfDocument[] pdfArray = new PdfDocument[pdfFiles.Length];

        // Counter to keep track of the index
        int index = 0;

        // Loop to open each PDF and extract information
        foreach (string pdfFile in pdfFiles)
        {
            // Load PDF document
            var pdfDocument = PdfDocument.FromFile(pdfFile);
            pdfArray[index++] = pdfDocument; // Add document to array, increment index
        }

        int arrayLength = pdfArray.Length;
        Console.WriteLine("PDF array Length: " + arrayLength);
    }
}
using IronPdf;
using System;
using System.Linq;

class Program
{
    public static void Main()
    {
        // PDF files to open
        string[] pdfFiles = { "GeneratedPDF_1.pdf", "GeneratedPDF_2.pdf", "GeneratedPDF_3.pdf" };
        PdfDocument[] pdfArray = new PdfDocument[pdfFiles.Length];

        // Counter to keep track of the index
        int index = 0;

        // Loop to open each PDF and extract information
        foreach (string pdfFile in pdfFiles)
        {
            // Load PDF document
            var pdfDocument = PdfDocument.FromFile(pdfFile);
            pdfArray[index++] = pdfDocument; // Add document to array, increment index
        }

        int arrayLength = pdfArray.Length;
        Console.WriteLine("PDF array Length: " + arrayLength);
    }
}
Imports IronPdf
Imports System
Imports System.Linq

Friend Class Program
	Public Shared Sub Main()
		' PDF files to open
		Dim pdfFiles() As String = { "GeneratedPDF_1.pdf", "GeneratedPDF_2.pdf", "GeneratedPDF_3.pdf" }
		Dim pdfArray(pdfFiles.Length - 1) As PdfDocument

		' Counter to keep track of the index
		Dim index As Integer = 0

		' Loop to open each PDF and extract information
		For Each pdfFile As String In pdfFiles
			' Load PDF document
			Dim pdfDocument = PdfDocument.FromFile(pdfFile)
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: pdfArray[index++] = pdfDocument;
			pdfArray(index) = pdfDocument ' Add document to array, increment index
			index += 1
		Next pdfFile

		Dim arrayLength As Integer = pdfArray.Length
		Console.WriteLine("PDF array Length: " & arrayLength)
	End Sub
End Class
$vbLabelText   $csharpLabel

此 C# 代码利用 IronPDF 库打开和处理现有 PDF 文件。 它定义了一个 PDF 文件名数组(pdfFiles)并创建一个空数组(pdfArray)来存储PdfDocument对象。 通过循环,它使用 IronPDF 的PdfDocument.FromFile方法打开每个 PDF 文件,为每个文件创建一个PdfDocument对象。然后pdfArray用这些对象填充。 最后,代码将生成的pdfArray的长度打印到控制台,提供有关处理和存储的 PDF 数量的信息。

C# 数组长度(开发人员的工作原理):图 2 - 前一个代码示例的控制台输出

结论

本文提供了与 C# 数组长度相关的关键概念的全面概述,强调了它们在数组操作中的重要性。 探索了确定数组长度的方法、长度与权级的区别以及最佳实践。

本指南还介绍了IronPDF这个强大的 PDF 处理 C# 库,并展示了其在打开现有 PDF 文件、创建PdfDocument对象及将其存储到数组中的实际使用。 这本简洁而信息丰富的指南是 C# 开发人员掌握数组操作和利用 IronPDF 在其应用程序中进行高效 PDF 相关任务的宝贵资源。

为了进一步探索可能性并释放 IronPDF 的全部潜力,开发人员可以利用IronPDF 的免费试用许可证。 To know more about generating and editing PDFs with IronPDF, visit the IronPDF documentation, and for a tutorial on reading PDF files, visit this IronPDF PDFReader C# Tutorial.

常见问题解答

如何在 C# 中确定数组的长度?

在 C# 中,您可以使用 Length 属性来确定数组的长度。此属性返回数组中的元素总数,该数在初始化期间设置并保持不变。

C# 中数组长度和数组秩的区别是什么?

数组长度指的是数组中元素的总数,而数组秩表示多维数组中的维度数。例如,二维数组的秩为 2。

在 C# 中可以在初始化后更改数组的长度吗?

不,在 C# 中,一旦数组的长度在初始化期间设置好,就不能更改。如果需要可调整大小的集合,请考虑使用 List 类。

如何避免在 C# 中出现 IndexOutOfRangeException?

为避免 IndexOutOfRangeException,请始终确保您的索引在数组范围内,从 0 到 array.Length - 1

在使用 C# 操作 PDF 文档时,数组的实际用途是什么?

可以使用数组来存储和处理 C# 中的 PDF 文档集合。通过创建 PdfDocument 对象的数组,您可以使用诸如 IronPDF 等库提供的方法来高效管理多个 PDF。

如何在 .NET 项目中安装 PDF 操作库?

要在 .NET 项目中安装 PDF 操作库,请使用 NuGet Package Manager。例如,您可以使用命令:Install-Package IronPdf 来安装 IronPDF。

在 C# 中处理数组长度的最佳实践是什么?

最佳实践包括为提高效率而使用 Length 属性,检查索引以防止越界错误,并在需要动态调整大小的情况下使用 List

IronPDF 如何促进 C# 中的 HTML 转换为 PDF?

IronPDF 提供例如 RenderHtmlAsPdf 这样的方法,将 HTML 内容转换为 PDF 格式,简化从 C# 应用程序中的网页内容生成 PDF 的过程。

Curtis Chau
技术作家

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

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