在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
列表是一种多功能动态数据结构,用于在 C# 中存储和操作数据集合。 列表是 System.Collections.Generic 命名空间的一部分,该命名空间提供了一系列功能强大、类型安全的集合类和强类型对象。 这本适合初学者的教程将指导您了解 C# 列表的基本使用方法,包括如何创建/添加元素、访问指定索引或首次出现的元素、修改指定元素和删除元素,以及一些常见用例。
要开始使用List类,首先需要在代码中包含System.Collections泛型命名空间:
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"); // truebool containsApple = fruits.Contains("apple"); // trueDim containsApple As Boolean = fruits.Contains("apple") ' true若要查找元素首次出现的索引,请使用IndexOf方法:
int appleIndex = fruits.IndexOf("apple"); // 0int appleIndex = fruits.IndexOf("apple"); // 0Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0如果未找到元素,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或者,您可以使用具有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要按升序排列列表,使用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,首先需要在类程序代码中包含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 NuGet 包并安装到您的项目中:
Install-Package IronPdf
接下来,在您的代码中包含IronPdf命名空间:
using IronPdf;using IronPdf;Imports IronPdf现在,让我们创建一个简单的函数,将字符串的List转换为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);
}Imports System.Collections.Generic
Imports IronPdf
Imports System.Text
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 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要在上述示例中使用该函数,只需调用您的列表和所需的 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文件,其中包含一个表格,通过使用IronPDF将HTML转换为PDF来匹配定义的条件的默认水果清单。 您可以修改ExportListToPdf函数以适应您的需求,例如为HTML表格添加自定义样式或向PDF添加其他内容。

在这个适合初学者的教程中,我们介绍了使用 C# 列表的基础知识,并演示了如何集成 IronPDF 以将列表数据导出为 PDF 文件。通过将 IronPDF 集成到您的项目中,您可以轻松地从 C# 项目中生成报告、发票或其他可打印文档。
IronPDF 提供免费试用,让您在购买前测试其功能。 如果您决定在试用期后继续使用IronPDF,许可费用从$749开始,多种许可选项可供选择,以满足您的需求。