.NET 幫助

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

發佈 2023年6月6日
分享:

介紹

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

創建列表

要開始使用 List 類別,您首先需要在代碼中包含 System.Collections 泛型命名空間:

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

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

List numbers = new List();
List numbers = new List();
Dim numbers As New List()
VB   C#

您還可以通過指定的集合,像這樣插入具有一些初始值的元素到清單中:

List fruits = new List { "apple", "banana", "cherry" };
List fruits = new List { "apple", "banana", "cherry" };
Dim fruits As New List 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 moreNumbers = new List { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List moreNumbers = new List { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List 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。如果元素存在,上述範例將把該元素存儲到字串中。

修改清單元素

要修改清單中的元素,只需在所需的索引位置分配一個新值,請注意索引是從零開始計算的:

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#

排序清單 (List)

要將清單按升序排序,請使用 Sort 方法:

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

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

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List 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 evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List = numbers.Where(Function(x) x Mod 2 = 0).ToList()
VB   C#

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

List fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List = 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 將列表中的數據導出為 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 data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("Item");

    foreach (string item in data)
    {
        htmlBuilder.Append($"{item}");
    }

    htmlBuilder.Append("");

    // 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 data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("Item");

    foreach (string item in data)
    {
        htmlBuilder.Append($"{item}");
    }

    htmlBuilder.Append("");

    // 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, ByVal pdfFilePath As String)
	' Create an HTML table from the list data
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("Item")

	For Each item As String In data
		htmlBuilder.Append($"{item}")
	Next item

	htmlBuilder.Append("")

	' 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 fruits = new List { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List fruits = new List { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
VB   C#

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

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

結論

在這個適合新手的教程中,我們介紹了使用 C# 列表的基礎知識,並展示了如何整合 IronPDF 將列表數據導出為 PDF 文件。通過將 IronPDF 整合到您的項目中,您可以輕鬆生成報告、發票或其他可打印文件。 免費試用,讓您在購買前先測試其功能。如果您決定在試用期之後繼續使用IronPDF,授權起價從$749開始,並有多種授權選項可供選擇,以符合您的需求。

< 上一頁
C# 這個(它如何為開發者工作)
下一個 >
什麼是Visual Studio(其對開發人員的作用)

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 NuGet 下載 總下載次數: 10,840,061 查看許可證 >