.NET 帮助 C# 列表(开发者如何使用) Curtis Chau 已更新:七月 28, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 列表是多功能且动态的数据结构,用于在 C# 中存储和操作数据集合。 它们是 System.Collections.Generic 命名空间的一部分,该命名空间提供了一系列强大的、类型安全的集合类和强类型对象。 此初学者教程将引导您完成使用 C# 列表的基础知识,包括如何创建/添加元素、访问指定索引或首个出现、修改指定元素和移除元素,以及一些常见用例。 创建列表 要开始使用 List 类,您首先需要在代码中包含 System.Collections.Generic 命名空间: using System.Collections.Generic; using System.Collections.Generic; Imports System.Collections.Generic $vbLabelText $csharpLabel 在添加泛型命名空间后,通过指定要存储在尖括号 (< >) 内的所有元素的数据类型来创建一个新的 List 对象。 这是如何创建整数列表的一个示例: List<int> numbers = new List<int>(); List<int> numbers = new List<int>(); Dim numbers As New List(Of Integer)() $vbLabelText $csharpLabel 您还可以使用一些初始值初始化列表,或根据指定集合定义它,如下所示: 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"} $vbLabelText $csharpLabel 我们还可以指定列表的默认初始容量。指定的初始容量是列表的默认最大容量。 列表的方法 向列表添加元素数量 若要向列表添加元素,请使用 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) $vbLabelText $csharpLabel 您还可以使用 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) $vbLabelText $csharpLabel 访问列表元素 您可以像访问数组一样使用索引访问列表的各个元素: 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" $vbLabelText $csharpLabel 请记住,列表是以零为基的索引,因此第一个元素的索引为 0。上面的示例将元素存储在字符串中(如果存在的话)。 修改列表元素 要修改列表中的元素,只需为所需索引处的元素分配一个新值,记住这是零基索引: fruits[1] = "blueberry"; fruits[1] = "blueberry"; fruits(1) = "blueberry" $vbLabelText $csharpLabel 现在,水果列表中的第二个元素是“blueberry”而不是“banana”。 从列表中删除元素 要从列表中删除元素,您可以使用 Remove 方法,该方法删除指定元素的第一个出现: fruits.Remove("apple"); fruits.Remove("apple"); fruits.Remove("apple") $vbLabelText $csharpLabel 或者,您可以使用 RemoveAt 方法删除指定索引处的元素: fruits.RemoveAt(0); fruits.RemoveAt(0); fruits.RemoveAt(0) $vbLabelText $csharpLabel 要从列表中删除所有元素,请使用 Clear 方法: fruits.Clear(); fruits.Clear(); fruits.Clear() $vbLabelText $csharpLabel 在列表中查找元素 您可以使用 Contains() 方法检查列表是否包含特定元素: bool containsApple = fruits.Contains("apple"); // true bool containsApple = fruits.Contains("apple"); // true Dim containsApple As Boolean = fruits.Contains("apple") ' true $vbLabelText $csharpLabel 要查找元素的首次出现索引,请使用 IndexOf 方法: int appleIndex = fruits.IndexOf("apple"); // 0 int appleIndex = fruits.IndexOf("apple"); // 0 Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0 $vbLabelText $csharpLabel 如果未找到元素,IndexOf 返回 -1。 遍历列表 要遍历列表中的元素,可以使用 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 $vbLabelText $csharpLabel 或者,您可以使用 Count 属性和 for 循环,Count 返回列表中的元素数量: 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 $vbLabelText $csharpLabel 对列表进行排序 要按升序排序列表,请使用 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 } $vbLabelText $csharpLabel 要按降序排序列表,可以使用带有自定义比较的 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 } $vbLabelText $csharpLabel 对于更复杂的排序,您可以实现自定义的 IComparer 类或使用 LINQ(语言集成查询)。 二分搜索算法在排序列表上有效。 使用 LINQ 和列表 LINQ 允许您对集合(包括列表)执行强大的查询和转换。 要使用 LINQ,您首先需要在代码中包含 System.Linq 命名空间: using System.Linq; using System.Linq; Imports System.Linq $vbLabelText $csharpLabel 以下是列表上的一些 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() $vbLabelText $csharpLabel 映射(转换)列表中的元素 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() $vbLabelText $csharpLabel 寻找列表中的最小值和最大值 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() $vbLabelText $csharpLabel 将列表转换为数组 要将列表转换为数组,您可以使用 ToArray 方法: int[] numbersArray = numbers.ToArray(); int[] numbersArray = numbers.ToArray(); Dim numbersArray() As Integer = numbers.ToArray() $vbLabelText $csharpLabel 使用 IronPDF 导出列表数据到 PDF 在本节中,我们将演示如何使用 IronPDF 库 将列表中的数据导出为 PDF 文件。 这在您希望生成报告或数据的可打印版本时会非常有用。 首先,将 IronPDF NuGet 包下载并安装到您的项目中: Install-Package IronPdf 接下来,在代码中包含 IronPdf 命名空间: using IronPdf; using IronPdf; Imports IronPdf $vbLabelText $csharpLabel 现在,让我们创建一个简单的函数,将字符串列表转换为 HTML 表格,然后将其导出为 PDF 文件: using System.Collections.Generic; using System.Text; using IronPdf; 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 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 System.Text; using IronPdf; 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 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 System.Text Imports IronPdf 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 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 $vbLabelText $csharpLabel 要使用此函数,只需将其与您的列表和所需的 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") $vbLabelText $csharpLabel 这将生成名为“Fruits.pdf”的 PDF 文件,其中包含通过 使用 IronPDF 转换 HTML 到 PDF 的水果列表表格。 您可以修改 ExportListToPdf 函数以满足您的需要,例如为 HTML 表格添加自定义样式或向 PDF 添加其他内容。 !C# 列表(开发人员如何使用)图 1 - HTML 到 PDF 结论 在这个对初学者友好的教程中,我们介绍了使用 C# 列表的基础知识,并演示了如何集成 IronPDF 来将列表数据导出为 PDF 文件。通过将 IronPDF 集成到您的项目中,您可以轻松地从 C# 项目生成报告、发票或其他可打印文档。 IronPDF 提供免费试用,让您在购买前测试其功能。 常见问题解答 如何在C#中创建一个列表? 要在C#中创建一个列表,你需要包含System.Collections.Generic命名空间。然后你可以通过在尖括号内指定数据类型来声明一个列表。例如:List numbers = new List(); 哪些方法用于向C#列表中添加元素? 使用Add()方法可以向C#列表中添加单个元素,使用AddRange()可以添加元素集合。 如何将C#列表导出为PDF文件? 要将C#列表导出为PDF文件,你可以使用IronPDF库。将你的列表数据转换为HTML表格格式,然后使用IronPDF将其渲染为PDF。 排序C#列表的最佳方式是什么? 你可以使用Sort()方法按升序排序C#列表。要按降序排序,可以使用带有自定义比较委托的Sort()方法。 如何访问C#列表中的元素? C#列表中的元素可以使用索引访问,类似于数组。列表是从零开始索引的,因此你可以使用元素在列表中的位置来检索它。 可用的从C#列表中删除元素的选项有哪些? 你可以使用Remove()方法删除特定元素,RemoveAt()方法删除特定索引的元素,或使用Clear()方法删除所有元素。 如何在C#列表中使用LINQ? LINQ可以用于C#列表,以执行强大的查询和转换,例如高效过滤、映射和查找最小或最大值。 如何将列表转换为C#中的数组? 你可以使用ToArray()方法将C#列表转换为数组,它会创建一个包含列表元素的新数组。 C#列表的一些常见用例是什么? C#列表通常用于管理动态数据集合,使用LINQ执行复杂查询,以及使用诸如IronPDF之类的库生成报告或文档。 如何遍历C#列表中的元素? 你可以使用foreach循环简单迭代C#列表中的元素,或者在需要索引时使用for循环。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# This(开发者如何使用)Visual Studio 是什么(开发者...
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多