.NET幫助 C# 列表(開發者的工作原理) Jacob Mellor 更新:2025年7月28日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 列表是多功能且動態的資料結構,用於在C#中儲存和操作資料集合。 它們是System.Collections.Generic命名空間的一部分,提供了一系列強大的型別安全集合類別和強類型物件。 這個適合初學者的教學將指導您了解如何使用C#列表的基本知識,包括如何創建/添加元素、訪問指定的索引或第一次出現、修改指定元素和刪除元素,以及一些常見的用例。 創建列表 要開始使用List類,您首先需要在程式中包含System.Collections.Generic命名空間: using System.Collections.Generic; using System.Collections.Generic; $vbLabelText $csharpLabel 在添加泛型命名空間後,通過在角括號(List物件。 以下是一個創建整數列表的範例: List<int> numbers = new List<int>(); List<int> numbers = new List<int>(); $vbLabelText $csharpLabel 您還可以使用一些初始值初始化列表,或按指定的集合來定義列表,如下所示: List<string> fruits = new List<string> { "apple", "banana", "cherry" }; List<string> fruits = new List<string> { "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); $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); $vbLabelText $csharpLabel 訪問列表元素 您可以像陣列一樣使用索引訪問列表的個別元素: string firstFruit = fruits[0]; // "apple" string secondFruit = fruits[1]; // "banana" string firstFruit = fruits[0]; // "apple" string secondFruit = fruits[1]; // "banana" $vbLabelText $csharpLabel 請記住,列表是從零開始編號的,所以第一個元素的索引是0。上述範例將元素儲存在字串中(若存在)。 修改列表元素 要修改列表中的元素,只需為所需索引上的元素賦予新值,同時記住從零開始的索引: fruits[1] = "blueberry"; fruits[1] = "blueberry"; $vbLabelText $csharpLabel 現在,fruits列表中的第二個元素是"藍莓"而不是"香蕉"。 移除列表中的元素 要從列表中移除元素,您可以使用Remove方法,該方法刪除指定元素的第一次出現: fruits.Remove("apple"); fruits.Remove("apple"); $vbLabelText $csharpLabel 或者,您可以使用RemoveAt方法來移除指定索引處的元素: fruits.RemoveAt(0); fruits.RemoveAt(0); $vbLabelText $csharpLabel 要移除列表中的所有元素,請使用Clear方法: fruits.Clear(); fruits.Clear(); $vbLabelText $csharpLabel 查找列表中的元素 您可以使用Contains()方法檢查列表中是否包含特定元素: bool containsApple = fruits.Contains("apple"); // true bool containsApple = fruits.Contains("apple"); // true $vbLabelText $csharpLabel 要找到元素的第一次出現的索引,請使用IndexOf方法: int appleIndex = fruits.IndexOf("apple"); // 0 int appleIndex = 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); } $vbLabelText $csharpLabel 或者,您可以使用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]); } $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 } $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 } $vbLabelText $csharpLabel 對於更複雜的排序,您可以實現自定義IComparer類或使用LINQ(Language Integrated Query)。 二元搜尋演算法在排序列表上運作。 使用LINQ處理列表 LINQ允許您對集合(包括列表)進行強大的查詢和轉換。 要使用LINQ,您首先需要在程式中包含System.Linq命名空間: using System.Linq; using 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(); $vbLabelText $csharpLabel 映射(轉換)列表中的元素 List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList(); List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList(); $vbLabelText $csharpLabel 查找列表中的最小值和最大值 int minValue = numbers.Min(); int maxValue = numbers.Max(); int minValue = numbers.Min(); int maxValue = numbers.Max(); $vbLabelText $csharpLabel 將列表轉換為陣列 要將列表轉換為陣列,您可以使用ToArray方法: int[] numbersArray = numbers.ToArray(); int[] numbersArray = numbers.ToArray(); $vbLabelText $csharpLabel 使用IronPDF匯出列表資料到PDF 在本節中,我們將演示如何使用IronPDF程式庫將列表中的資料匯出到PDF文件。 當您希望生成報告或您資料的可列印版本時,這會很有幫助。 首先,下載並安裝IronPDF NuGet套件到您的專案中: Install-Package IronPdf 接下來,將IronPdf命名空間包含在程式中: using IronPdf; using 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); } $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"); $vbLabelText $csharpLabel 這將生成名為"Fruits.pdf"的PDF文件,包含通過使用IronPDF將HTML轉換為PDF的水果列表表格。 您可以修改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# 清單中的元素。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 C# This(開發者的工作原理)什麼是 Visual Studio(開發者...
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多