C# 列表(開發者的工作原理)
在 C# 中,清單是用來儲存和操作資料集合的多功能動態資料結構。 它們是 System.Collections.Generic 命名空間的一部分,該命名空間提供了一系列強大的類型安全的集合類別和強類型物件。 這套適合初學者的教學將引導您使用 C# Lists 的基本知識,包括如何建立/新增元素、存取指定的索引或首次出現、修改指定的元素和移除元素,以及一些常見的使用案例。
建立清單
要開始使用 List 類,首先需要在程式碼中包含 System.Collections.Generic 命名空間:
using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
新增通用命名空間後,透過指定要儲存在尖括號內的所有元素的資料類型,建立一個新的 List 物件 (< >)。 以下是如何建立整數清單的範例:
List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
您也可以使用一些初始值來初始化清單,或像這樣以指定的集合來定義:
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"}
我們也可以指定清單的預設初始容量。指定的初始容量即為清單的預設最大容量。
列表的方法
在清單中加入元素的數量
若要為清單中新增元素,請使用 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)
您也可以使用 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)
存取清單元素
您可以使用索引存取清單中的個別元素,就像使用陣列一樣:
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"
請記住,清單是以 0 為索引,因此第一個元素的索引為 0。上述範例會在元素存在的情況下,將其儲存於字串中。
修改清單元素
若要修改清單中的元素,只需在所需索引的元素上指定新值,並注意以零為基礎的索引:
fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
現在,水果清單中的第二個元素是"藍莓",而不是"香蕉"。
從清單中移除元素
若要從清單中刪除元素,可以使用 Remove 方法,該方法會刪除指定元素的第一次出現:
fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
或者,您可以使用 RemoveAt 方法來刪除指定索引處的元素:
fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
若要從清單中刪除所有元素,請使用 Clear 方法:
fruits.Clear();
fruits.Clear();
fruits.Clear()
在清單中尋找元素
您可以使用 Contains() 方法來檢查清單是否包含特定元素:
bool containsApple = fruits.Contains("apple"); // true
bool containsApple = fruits.Contains("apple"); // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
若要尋找元素首次出現的索引,請使用 IndexOf 方法:
int appleIndex = fruits.IndexOf("apple"); // 0
int appleIndex = fruits.IndexOf("apple"); // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
如果找不到該元素,則傳回 -1。
透過清單循環
要遍歷清單中的元素,可以使用循環:
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
或者,您可以使用帶有屬性的循環,該屬性傳回清單中的元素數量:
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
清單排序
若要按升序對清單進行排序,請使用 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 }
若要按降序對清單進行排序,可以使用帶有自訂比較的 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 }
對於更複雜的排序,您可以實作自訂的 IComparer 類別或使用 LINQ(語言整合查詢)。 二進位搜尋演算法適用於已排序的清單。
使用清單的 LINQ
LINQ 允許您對集合(包括清單)執行強大的查詢和轉換。 要使用 LINQ,首先需要在程式碼中包含 System.Linq 命名空間:
using System.Linq;
using System.Linq;
Imports System.Linq
以下是一些清單上的 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()
映射(轉換)列表中的元素
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()
尋找列表中的最小值和最大值
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()
將列表轉換為陣列
要將列表轉換為數組,可以使用以下方法:
int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
使用 IronPDF 將清單資料匯出至 PDF。
在本節中,我們將示範如何使用 IronPDF 函式庫將 List 中的資料匯出至 PDF 檔案。 當您想要產生報告或可列印版本的資料時,這會很有幫助。
首先,下載 IronPDF NuGet 套件並安裝至您的專案:
Install-Package IronPdf
接下來,在你的程式碼中包含 IronPdf 命名空間:
using IronPdf;
using IronPdf;
Imports IronPdf
現在,讓我們建立一個簡單的函數,將字串轉換為 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
要使用此功能,只需使用您的清單和所需的 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")
使用 IronPDF 將 HTML 轉換為 PDF 產生一個 PDF 檔案,名為"Fruits.pdf",其中包含一個列有水果清單的表格。 您可以修改 ExportListToPdf 函數以滿足您的需求,例如在 HTML 表格中新增自訂樣式或在 PDF 中新增其他內容。

結論
在這份適合初學者的教學中,我們涵蓋了使用 C# Lists 的基本知識,並示範如何整合 IronPDF 以將 List 資料匯出至 PDF 檔案。通過將 IronPDF 整合到您的專案中,您可以輕鬆地從 C# 專案中產生報表、發票或其他可列印的文件。
IronPDF 提供 免費試用,讓您在承諾購買之前測試其功能。
常見問題解答
如何在 C# 中建立清單?
要在 C# 中建立清單,您需要包括 System.Collections.Generic 命名空間。然後,您可以透過在尖括號中指定資料類型來宣告清單。例如: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# 清單中的元素。



