.NET 帮助 C# 初始化列表(开发者用法) Jacob Mellor 已更新:2025年7月28日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 列表是System.Collections.Generic命名空间的一部分,适用于处理数据集合。 C#中的列表是动态的,这意味着其大小可以在运行时更改。在许多软件工程场景中,这是非常有帮助的,其中元素数量事先未知。 让我们深入探讨在C#中初始化列表的不同方式。 我们将介绍基础技术、对象初始化语法、集合初始化器以及IronPDF库。 基本列表初始化 要初始化一个列表,首先创建一个string,但您可以使用任何类型。 using System; using System.Collections.Generic; class Program { static void Main() { // Initialize an empty list List<string> fruits = new List<string>(); // Adding elements to the list fruits.Add("Apple"); fruits.Add("Banana"); fruits.Add("Cherry"); // Display the list foreach (var fruit in fruits) { Console.WriteLine(fruit); } } } using System; using System.Collections.Generic; class Program { static void Main() { // Initialize an empty list List<string> fruits = new List<string>(); // Adding elements to the list fruits.Add("Apple"); fruits.Add("Banana"); fruits.Add("Cherry"); // Display the list foreach (var fruit in fruits) { Console.WriteLine(fruit); } } } $vbLabelText $csharpLabel 在上述示例中,我们创建了一个空列表,并使用Add方法添加元素。 Add方法为其填充值。 使用集合初始化器语法 C#提供了一种更简洁的方法,可以使用集合初始化器语法初始化列表。 这允许您在创建列表时直接填充列表,而无需反复调用Add方法。 public void InitializeList() { List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" }; } public void InitializeList() { List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" }; } $vbLabelText $csharpLabel 这段代码实现了与前面的示例相同的结果,但形式更为简洁。 集合初始化器允许您在一个语句中用值初始化列表,提高了代码的可读性。 对象初始化器和列表初始化 对象初始化器语法是另一种初始化列表的方法,主要用于处理自定义对象。 这是对象初始化器如何与列表配合使用的示例: class Person { public string Name { get; set; } public int Age { get; set; } } List<Person> people = new List<Person> { new Person { Name = "John", Age = 30 }, new Person { Name = "Jane", Age = 25 }, new Person { Name = "Jack", Age = 35 } }; class Person { public string Name { get; set; } public int Age { get; set; } } List<Person> people = new List<Person> { new Person { Name = "John", Age = 30 }, new Person { Name = "Jane", Age = 25 }, new Person { Name = "Jack", Age = 35 } }; $vbLabelText $csharpLabel 在此示例中,我们使用对象初始化器创建了一个Person对象的列表。 Age,在创建列表时这些属性被明确赋值。 创建具有初始大小的列表 虽然列表的大小是动态的,但如果您大致知道列表将包含的元素数量,则可以指定初始容量。 这可以通过减少内存重新分配次数来提高性能。 List<string> fruits = new List<string>(10); // Initial size of 10 List<string> fruits = new List<string>(10); // Initial size of 10 $vbLabelText $csharpLabel 这创建了一个初始容量为10的空列表。虽然没有添加元素,但已经分配了足够的内存以容纳最多10个元素而无需调整内部数组大小。 从数组初始化列表 您还可以使用接受一个IEnumerable<t>参数的列表构造函数从现有数组中初始化列表。 当您有一个数组并希望将其转换为列表以获得灵活性时,这非常有用。 // New String array of fruit string[] fruitArray = { "Apple", "Banana", "Cherry" }; List<string> fruits = new List<string>(fruitArray); // New String array of fruit string[] fruitArray = { "Apple", "Banana", "Cherry" }; List<string> fruits = new List<string>(fruitArray); $vbLabelText $csharpLabel 这里创建了一个新数组,然后用它来初始化列表。这将IEnumerable<t>,包括数组,都可以传递给列表构造函数进行初始化。 使用AddRange方法 如果您已有现有的项目集合,可以使用AddRange方法将多个元素一起添加到列表中。 List<string> fruits = new List<string> { "Apple", "Banana" }; string[] moreFruits = { "Cherry", "Date", "Elderberry" }; fruits.AddRange(moreFruits); List<string> fruits = new List<string> { "Apple", "Banana" }; string[] moreFruits = { "Cherry", "Date", "Elderberry" }; fruits.AddRange(moreFruits); $vbLabelText $csharpLabel 在此示例中,我们从包含两个元素的列表开始,使用AddRange从数组中添加多个新项目。 这种方法可以通过批量添加元素而提高性能,因为它减少了多次重新分配的需要。 用自定义对象初始化列表 在初始化自定义对象的列表时,可以将对象初始化器与集合初始化器结合使用,在一个表达式中创建复杂的数据结构。 List<Person> people = new List<Person> { new Person { Name = "Alice", Age = 28 }, new Person { Name = "Bob", Age = 32 }, new Person { Name = "Charlie", Age = 40 } }; List<Person> people = new List<Person> { new Person { Name = "Alice", Age = 28 }, new Person { Name = "Bob", Age = 32 }, new Person { Name = "Charlie", Age = 40 } }; $vbLabelText $csharpLabel 这种技术允许在一个语句中创建和初始化对象列表,使代码简洁且易于阅读。 使用扩展方法初始化列表 您还可以实现扩展方法,以自定义方式初始化列表。 扩展方法提供了一种机制,可以在不改变原结构的情况下为现有类型增加新功能。 public static class ListExtensions { public static List<t> InitializeWith<t>(this List<t> list, params T[] elements) { list.AddRange(elements); return list; } } // Usage List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry"); public static class ListExtensions { public static List<t> InitializeWith<t>(this List<t> list, params T[] elements) { list.AddRange(elements); return list; } } // Usage List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry"); $vbLabelText $csharpLabel 这里我们定义了一个扩展方法InitializeWith,它将元素添加到列表中并返回列表本身。 这允许您链式调用列表的初始化和填充。 IronPDF:C# PDF 库 如果您有一个列表,比如一个水果列表,您可以快速将其转换为HTML表格并将其呈现为PDF,使用IronPDF,全部只需几行代码。 过程很简便:初始化您的列表,转换为HTML,然后让IronPDF生成PDF。 以下是一个例子: using IronPdf; using System; using System.Collections.Generic; using System.Text; class Program { static void Main() { // Initialize a list of strings representing data List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" }; // Convert the list to an HTML table StringBuilder htmlContent = new StringBuilder(); htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>"); foreach (var fruit in fruits) { htmlContent.Append($"<tr><td>{fruit}</td></tr>"); } htmlContent.Append("</table>"); // Render the HTML to PDF using IronPDF var Renderer = new ChromePdfRenderer(); var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString()); // Save the PDF to a file PDF.SaveAs("FruitsList.pdf"); Console.WriteLine("PDF generated successfully."); } } using IronPdf; using System; using System.Collections.Generic; using System.Text; class Program { static void Main() { // Initialize a list of strings representing data List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" }; // Convert the list to an HTML table StringBuilder htmlContent = new StringBuilder(); htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>"); foreach (var fruit in fruits) { htmlContent.Append($"<tr><td>{fruit}</td></tr>"); } htmlContent.Append("</table>"); // Render the HTML to PDF using IronPDF var Renderer = new ChromePdfRenderer(); var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString()); // Save the PDF to a file PDF.SaveAs("FruitsList.pdf"); Console.WriteLine("PDF generated successfully."); } } $vbLabelText $csharpLabel 此代码初始化列表,从中创建HTML表格,并使用IronPDF创建PDF文件。 这是一种从数据集合生成PDF的简单直接的方法。 结论 在C#中,列表初始化是每个软件工程师都应掌握的基本概念。 无论您是在处理简单的字符串列表还是复杂的对象列表,C#提供了几种方法可以有效地初始化和填充列表。 从基础初始化到对象和集合初始化器,这些技术帮助您编写简洁、清晰和可维护的代码。 IronPDF提供免费试用,让您无需初始投资即可试用产品。 当您确信它满足您的需求时,许可证起价为$799。 常见问题解答 在C#中有哪些基本方法可以初始化列表? 在C#中,你可以通过创建List类的实例来初始化列表,其中T是元素类型。例如,List fruits = new List();是初始化列表的基本方式。 集合初始化器语法如何改进C#中的列表初始化? 集合初始化器语法允许您在创建列表时直接填充,从而使代码更简洁。例如:List fruits = new List { 'Apple', 'Banana', 'Cherry' };。 在初始化列表时,对象初始化器语法的目的是什么? 对象初始化器语法有利于初始化具有自定义对象的列表,允许在创建列表时设置属性值。例如:在列表中使用new Person { Name = 'John', Age = 30 };。 你可以为列表设置初始容量吗?为什么这有帮助? 是的,设置列表的初始容量可以提高性能,因为随着列表增长可以减少内存重新分配的需要。例如:List fruits = new List(10);。 如何在C#中从现有数组初始化列表? 你可以使用接受IEnumerable的列表构造函数从数组初始化列表。例如:List fruits = new List(fruitArray);。 AddRange方法在列表初始化中起什么作用? AddRange方法一次性将多个元素从集合添加到列表中,通过最小化重新分配来优化性能。例如:fruits.AddRange(moreFruits);。 如何使用初始化器在列表中初始化自定义对象? 可以结合使用对象和集合初始化器在列表中初始化自定义对象,这样就能通过单个表达式来创建列表。例如:new List { new Person { Name = 'Alice', Age = 28 } };。 扩展方法是什么以及它们如何与列表初始化相关? 扩展方法允许为现有类型添加新功能。例如,可以编写类似InitializeWith的扩展方法来简化列表的初始化和填充。 如何在C#中将列表转换为PDF? 使用IronPDF,可以将列表转换为HTML表格并将其渲染为PDF,以简化从数据集合生成PDF的过程。 是否有免费的试用版可用于从数据集合生成PDF? 是的,IronPDF提供一个免费试用版,允许用户在未进行初始购买的情况下测试其数据集合的PDF生成功能。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新2025年12月20日 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# 命名约定(开发者用法)FileStream C#(开发者用法)
已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多