.NET 幫助

C# 列表(開發者使用指南)

Kannaopat Udonpant
坎納帕特·烏頓潘
2023年6月6日
分享:

介紹

列表是多功能且動態的數據結構,用來在C#中存儲和操作數據集合。 列表是 System.Collections.Generic 命名空間的一部分,該命名空間提供一系列功能強大、類型安全的集合類和強類型的物件。 這個適合初學者的教程將指導您了解使用 C# 列表的基礎,包括如何創建/添加元素、訪問指定索引或首次出現、修改指定元素以及刪除元素,還有一些常見的用例。

建立清單

若要開始使用 List 類別,您首先需要在程式碼中包含 System.Collections 通用命名空間:

using System.Collections.Generic;
using System.Collections.Generic;

新增通用命名空間後,透過在尖括號中指定您要存儲的所有元素的數據類型,創建一個新的List對象(< >). 以下是一個建立整數列表的範例:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();

您也可以將元素插入到具有一些初始值的清單中,或由指定的集合定義,如下所示:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };

在上述範例中,我們也可以指定清單的預設初始容量。 指定的初始容量是列表的預設最大容量。

列表的方法

將元素數量添加到列表中

若要將元素添加到您的內部資料結構清單中,請使用 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);

您還可以使用 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);

存取列表元素

您可以使用索引存取清單中的個別元素,就像使用陣列一樣:

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"

請記住,列表是從零開始排序的,所以第一個元素的索引是 0。如果元素存在,以上範例會將該元素儲存在字串中。

修改清單元素

要修改列表中的元素,只需將所需索引處的元素賦值為新值,請記住索引是從零開始的:

fruits[1] = "blueberry";
fruits[1] = "blueberry";

現在,水果列表中的第二個元素是「藍莓」而不是「香蕉」。

從列表中移除元素

若要從清單中移除一個元素,您可以使用 Remove 方法,此方法會移除指定元素的首次出現:

fruits.Remove("apple");
fruits.Remove("apple");

或者,您可以使用 RemoveAt 方法在指定索引處移除元素(如果該元素存在):

fruits.RemoveAt(0);
fruits.RemoveAt(0);

若要從列表中刪除所有元素,請使用 Clear 方法:

fruits.Clear();
fruits.Clear();

在列表中尋找元素

您可以使用 Contains() 檢查清單是否包含特定元素的方法:

bool containsApple = fruits.Contains("apple");      // true
bool containsApple = fruits.Contains("apple");      // true

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

int appleIndex = fruits.IndexOf("apple");           // 0
int appleIndex = fruits.IndexOf("apple");           // 0

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

遍歷列表

要遍歷列表中的元素,可以使用foreach迴圈。使用foreach迴圈,您還可以訪問陣列中的所有元素。

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

或者,您可以使用帶有 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]);
}

對列表進行排序

要按升序排列列表,請使用 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 }

若要按降序排序清單,您可以使用帶有自定義比較指定的謂詞委託的 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 }

針對更複雜的排序,您可以實現自定義的 IComparer 類別或使用 LINQ(語言集成查詢). 二分搜尋演算法適用於已排序的列表。

使用 LINQ 與列表

LINQ 允許您對集合(包含列表)執行強大的查詢和轉換。 要使用 LINQ,您首先需要在您的類別程式碼中包含 System.Linq 命名空間:

using System.Linq;
using System.Linq;

以下是一些在列表上的 LINQ 查詢範例:

篩選清單

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();

映射(轉換)清單中的元素

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();

在列表中尋找最小值和最大值

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();

將清單轉換為陣列

若要將清單轉換成陣列,您可以使用 ToArray 方法:

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();

使用 IronPDF 將清單資料匯出為 PDF

在本節中,我們將演示如何使用資料表中的數據導出為 PDF 文件。IronPDF 庫. 當您想生成報告或數據的可列印版本時,這可能會很有幫助。

首先,下載並安裝 IronPDF NuGet 套件到您的專案:

Install-Package IronPdf

接下來,在您的程式碼中包含 IronPdf 命名空間:

using IronPdf;
using IronPdf;

現在,我們創建一個簡單的函式,將一個字符串列表轉換為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);
}

要在上述範例中使用此功能,只需用您的列表和所需的 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");

這將生成一個名為 "Fruits.pdf" 的 PDF 檔案,其中包含水果的默認容量列表表格。使用 IronPDF 將 HTML 轉換為 PDF符合所定義條件的內容。 您可以修改 ExportListToPdf 函數以滿足您的需求,例如為 HTML 表格添加自定義樣式或向 PDF 添加其他內容。

C# 列表(適用於開發人員的工作方式)圖 1 - HTML 轉 PDF

結論

在這個適合初學者的教程中,我們介紹了如何使用 C# 列表的基礎知識,並演示了如何整合 IronPDF 將列表數據匯出到 PDF 檔案。通過將 IronPDF 整合到您的專案中,您可以輕鬆生成報告、發票或其他可列印的文件,通過您的 C# 專案。

IronPDF 提供一個免費試用,讓您在購買之前測試其功能。 如果您決定在試用期後繼續使用IronPDF,授權起價為$749,並提供多種授權選項以滿足您的需求。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
C# 這個(它如何為開發者工作)
下一個 >
什麼是Visual Studio(其對開發人員的作用)