.NET幫助 C# 列表(開發者的工作原理) Curtis Chau 更新日期:7月 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 現在,水果列表中的第二個元素是 "藍莓" 而不是 "香蕉"。 從列表中刪除元素 要從列表中刪除元素,您可以使用 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 循環,這將返回列表中的元素數量: 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 現在,我們來創建一個簡單的函數,將字符串的 List 轉換為 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 文件,其中包含列表轉換後的HTML 到 PDF 的 IronPDF 水果表。 您可以根據需要修改 ExportListToPdf 函數,例如向 HTML 表格添加自定義樣式或向 PDF 添加附加內容。 結論 在本對初學者友好的教程中,我們介紹了使用 C# 列表的基礎知識,並演示了如何集成 IronPDF 將列表數據導出為 PDF 文件。通過將 IronPDF 集成到您的項目中,您可以輕鬆地從 C# 項目生成報告、發票或其他可打印文檔。 IronPDF 提供免費試用版,允許您在購買前測試其功能。 常見問題解答 如何在 C# 中創建清單? 要在 C# 中創建清單,您需要包括 System.Collections.Generic 命名空間。然後,您可以通過在尖括號中指定數據類型來聲明清單。例如:List numbers = new List(); 使用哪些方法來添加元素到 C# 清單? 可以使用 Add() 方法添加單個元素,並使用 AddRange() 添加元素集合到 C# 清單。 如何將 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 循環進行簡單迭代,或在需要索引時使用 for 循環遍歷 C# 清單中的元素。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新日期 9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新日期 9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 更新日期 8月 5, 2025 C#開關模式匹配(對開發者來說是如何工作的) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 C# This(開發者的工作原理)什麼是 Visual Studio(開發者...