C# 列表(開發者的工作原理)
清單是靈活且動態的資料結構,用於在C#中儲存和操作資料集合。 它們是System.Collections.Generic命名空間的一部分,該命名空間提供了一系列強大且型別安全的集合類和強型別物件。 這篇適合初學者的教程將引導您了解使用C#清單的基礎知識,包括如何建立/新增元素、存取指定索引或首次出現的元素、修改指定元素和移除元素,以及一些常見的使用案例。
建立清單
要開始使用清單類別,您首先需要在程式碼中包含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。上述範例將會把元素儲存在字串中(如果存在)。
修改清單元素
要修改清單中的元素,只需為所需索引處的元素指定一個新值,請記住從零開始的索引:
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
如果找不到元素,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
或者,您可以使用具有返回清單中元素數量的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
對清單進行排序
要將清單按升序排列,使用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()
將清單轉換為陣列
要將清單轉換為陣列,您可以使用ToArray方法:
int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
使用IronPDF將清單資料匯出為PDF
在這一部分,我們將演示如何使用IronPDF程式庫將清單中的資料導出到PDF文件。 這在您想要生成報告或可列印版本的資料時非常有用。
首先,下載並安裝IronPDF NuGet套件到您的專案:
Install-Package IronPdf
接下來,在程式碼中包含IronPdf命名空間:
using IronPdf;
using IronPdf;
Imports IronPdf
現在,讓我們建立一個簡單的函式,將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
要使用此函式,只需用您的清單和所需的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")
這將生成一個名為"Fruits.pdf"的PDF文件,包含將水果清單列表轉換為PDF的表格,並使用IronPDF將HTML轉換為PDF。 您可以修改ExportListToPdf函式以符合您的需求,例如為HTML表格新增自訂樣式或在PDF中新增其他內容。

結論
在這篇適合初學者的教程中,我們討論了使用C#清單的基礎知識,並演示了如何整合IronPDF將清單資料匯出到PDF文件中。透過把IronPDF納入您的專案中,您可以輕鬆生成報告、發票或其他可列印的文件。
IronPDF提供免費試用,讓您能夠在承諾購買之前測試其功能。
常見問題
如何在C#中建立一個列表?
要在C#中建立列表,您需要包含System.Collections.Generic命名空間。然後,您可以通過在尖括號內指定資料型別來宣告列表。例如:List
使用什麼方法將元素新增到C#列表中?
可以使用Add()方法來向C#列表中新增單個元素,並使用AddRange()新增一個元素集合。
如何將C#列表導出為PDF檔案?
要將C#列表導出為PDF檔案,您可以使用IronPDF程式庫。將列表資料轉換為HTML表格格式,然後使用IronPDF將其渲染為PDF。
排序C#列表的最佳方式是什麼?
您可以使用Sort()方法按升序排序C#列表。若要按降序排序,可以使用Sort()與自定義比較委託。
如何存取C#列表中的元素?
可以使用索引存取C#列表中的元素,類似於陣列。列表是從零開始索引的,因此您可以使用元素在列表中的位置來檢索它。
從C#列表中移除元素有哪些選擇?
您可以使用Remove()方法移除特定元素,RemoveAt()移除特定索引的元素或Clear()移除所有元素。
如何利用LINQ和C#列表?
可以使用LINQ和C#列表進行強大的查詢和轉換,例如有效地過濾、映射和查找最小值或最大值。
如何在C#中將列表轉換為陣列?
您可以使用ToArray()方法將C#列表轉換為陣列,該方法會建立一個包含列表元素的新陣列。
C#列表的一些常見使用情境有哪些?
C#列表常用於管理動態資料集合,使用LINQ執行複雜查詢,以及使用IronPDF等程式庫生成報告或文件。
如何遍歷C#列表中的元素?
您可以使用foreach迴圈進行簡單遍歷或for迴圈在需要索引時遍歷C#列表中的元素。




