.NET 帮助

C# 列表 (开发人员如何使用)

发布 2023年六月6日
分享:

介绍

列表是一种多功能动态数据结构,用于在 C# 中存储和操作数据集合。 列表是 "System.Collections.Generic "命名空间的一部分,该命名空间提供了一系列功能强大、类型安全的集合类和强类型对象。 这本适合初学者的教程将指导您了解 C# 列表的基本使用方法,包括如何创建/添加元素、访问指定索引或首次出现的元素、修改指定元素和删除元素,以及一些常见用例。

创建列表

要开始使用 List 类,首先需要在代码中包含 System.Collections 泛名空间:

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
VB   C#

添加通用命名空间后,创建一个新的 List 对象,指定要存储在 Angular 括弧内的所有元素的数据类型(< >). 下面是一个如何创建整数列表的示例:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
VB   C#

您还可以将元素插入到具有某些初始值或由指定集合定义的列表中,就像这样:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
VB   C#

我们还可以指定上例中列表的默认初始容量。 指定的初始容量是列表的默认最大容量。

列表方法

向列表中添加元素个数

要在内部数据结构列表中添加元素,请使用 `Add()方法:

numbers.Add(1);     // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1);     // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' adds first element
numbers.Add(2)
numbers.Add(3)
VB   C#

您还可以使用 AddRange 方法将指定集合的元素范围添加到列表中:

List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
VB   C#

访问列表元素

您可以使用索引访问列表中的单个元素,就像使用数组一样:

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
VB   C#

请记住,列表是基于 0 的索引,因此第一个元素的索引为 0。如果元素存在,上例将在字符串中存储该元素。

修改列表元素

要修改列表中的元素,只需在所需索引处为该元素分配一个新值,同时注意基于零的索引:

fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
VB   C#

现在,水果列表中的第二个元素是 "蓝莓",而不是 "香蕉"。

从列表中删除元素

要从列表中移除元素,可以使用 Remove 方法,该方法可移除指定元素的首次出现:

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
VB   C#

另外,如果元素存在,也可以使用 RemoveAt 方法删除指定索引处的元素:

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
VB   C#

要删除列表中的所有元素,请使用 Clear 方法:

fruits.Clear();
fruits.Clear();
fruits.Clear()
VB   C#

查找列表中的元素

您可以使用 Contains()检查列表是否包含特定元素的 方法:

bool containsApple = fruits.Contains("apple");      // true
bool containsApple = fruits.Contains("apple");      // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
VB   C#

要查找元素首次出现的索引,请使用 IndexOf 方法:

int appleIndex = fruits.IndexOf("apple");           // 0
int appleIndex = fruits.IndexOf("apple");           // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
VB   C#

如果未找到元素,IndexOf 返回-1。

循环浏览列表

要遍历列表中的元素,可以使用 foreach 循环。使用 foreach 循环还可以访问数组中的所有元素。

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
VB   C#

或者,也可以使用带有 Count 属性的 for 循环,返回列表中元素的数量:

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
For i As Integer = 0 To fruits.Count - 1
	Console.WriteLine(fruits(i))
Next i
VB   C#

列表排序

要对列表进行升序排序,请使用 Sort 方法:

List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()

' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
VB   C#

要按降序对列表排序,可以使用带有自定义比较指定谓词委托的 Sort 方法:

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))

' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
VB   C#

要进行更复杂的排序,可以实现自定义的 "IComparer "类,或使用 LINQ(语言综合查询). 二进制搜索算法适用于排序列表。

使用列表 LINQ

LINQ 允许您对集合(包括列表)执行强大的查询和转换。 要使用 LINQ,首先需要在类程序代码中包含 System.Linq 命名空间:

using System.Linq;
using System.Linq;
Imports System.Linq
VB   C#

下面是对列表进行 LINQ 查询的一些示例:

筛选列表

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
VB   C#

映射(转换)列表中的元素

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
VB   C#

查找列表中的最小值和最大值

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
VB   C#

将列表转换为数组

要将列表转换为数组,可以使用 ToArray 方法:

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
VB   C#

使用 IronPDF 将列表数据导出为 PDF 文件

在本节中,我们将演示如何使用IronPDF 库. 当您想生成报告或可打印的数据版本时,这可能会有所帮助。

首先,下载 IronPDF NuGet 包并安装到您的项目中:

Install-Package IronPdf

接下来,在代码中包含 "IronPdf "命名空间:

using IronPdf;
using IronPdf;
Imports IronPdf
VB   C#

现在,让我们创建一个简单的函数,将字符串 "列表 "转换为 HTML 表格,然后导出为 PDF 文件:

using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF specified object
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF specified object
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports IronPdf
Imports System.Text
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
	' Create an HTML table from the list data
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("<table><tr><th>Item</th></tr>")

	For Each item As String In data
		htmlBuilder.Append($"<tr><td>{item}</td></tr>")
	Next item

	htmlBuilder.Append("</table>")

	' Convert the HTML table to a PDF using IronPDF specified object
	Dim renderer = New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

	' Save the PDF to the specified file path
	pdf.SaveAs(pdfFilePath)
End Sub
VB   C#

要在上述示例中使用该函数,只需调用您的列表和所需的 PDF 文件路径即可:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
VB   C#

这将生成一个名为 "Fruits.pdf "的 PDF 文件,其中包含一张表格,按以下方式列出了水果的默认容量列表使用 IronPDF 将 HTML 转换为 PDF译文必须符合所定义的条件。 您可以根据自己的需要修改 ExportListToPdf 函数,例如为 HTML 表格添加自定义样式或为 PDF 添加其他内容。

C# 列表(如何为开发人员工作) 图 1 - HTML 转 PDF

结论

在这个适合初学者的教程中,我们介绍了使用 C# 列表的基础知识,并演示了如何集成 IronPDF 以将列表数据导出为 PDF 文件。通过将 IronPDF 集成到您的项目中,您可以轻松地从 C# 项目中生成报告、发票或其他可打印文档。

IronPDF 提供一个免费试用此外,您还可以在购买之前测试其功能。 如果您决定在试用期后继续使用 IronPDF,许可费用从 $749 起,并有多种许可选项可供选择,以满足您的需求。

< 前一页
C# 这 (它是怎么为开发人员工作的)
下一步 >
什么是Visual Studio(它对开发人员如何工作)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >