.NET 帮助 C#排序列表(开发者用法) Curtis Chau 已更新:六月 22, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article C# SortedList 简介 什么是 SortedList? C# SortedList 类是一个键值对集合,类似于字典,但它具有自动按键排序的额外优势。 它是 System.Collections.Generic 命名空间的一部分,专为需要快速访问排序数据的场景而设计。 SortedList<TKey, TValue> 非常适合在需要维持特定顺序并通过键高效访问元素的情况下使用。 当在 PDF 生成任务中与 SortedLists 一起使用时,IronPDF 完美地与此类集成,增强了对 PDF 生成的控制。 主要特点和用例 键值对存储:像字典一样,SortedList 将数据存储为键值对。 自动排序:SortedList 默认按键升序保持相关值排序。 高效的数据检索:通过键快速检索相关值使其适用于查找。 使用案例:适用于需要排序数据的应用,例如管理姓名、日期或数值的有序列表。 SortedList 如何工作 数据结构概述 公共类 SortedList 是数组和哈希表的混合体,通过键组织其项目。 在内部,它使用排序数组来保持键值的顺序,确保通过键进行高效查找。 然而,插入和删除操作可能比 Dictionary 慢。 排序机制 默认情况下,SortedList<TKey, TValue> 使用 IComparable 接口将键按升序排序,这确保字符串键和其他类型实现默认比较行为。 如果需要自定义排序顺序,可以提供自定义比较器。 优势和限制 优点: 快速键访问:通过键提供快速 O(log n) 访问。 排序顺序:数据自动按键排序,无需额外的排序开销。 缺点: 插入速度:对于插入操作,比 Dictionary 慢,尤其是在大数据尺寸的情况下。 非键操作的效率有限:在数据不主要通过特定键值访问的场景下效率较低。 使用 C# SortedList 创建 SortedList 您可以使用默认的构造函数或在需要自定义排序时传递 IComparer 来在 C# 中创建 SortedList。 SortedList 的默认初始容量为 16,当已知近似大小时,可以调整以提高性能。 // Create a SortedList with integer keys and string values SortedList<int, string> sortedList = new SortedList<int, string>(); // Create a SortedList with integer keys and string values SortedList<int, string> sortedList = new SortedList<int, string>(); ' Create a SortedList with integer keys and string values Dim sortedList As New SortedList(Of Integer, String)() $vbLabelText $csharpLabel 添加项目 使用 Add 方法将键值对添加到 SortedList 中。 这会保持项目按键排序。 以下代码保持 SortedList 数据按键升序。 sortedList.Add(1, "Apple"); sortedList.Add(3, "Banana"); sortedList.Add(2, "Cherry"); sortedList.Add(1, "Apple"); sortedList.Add(3, "Banana"); sortedList.Add(2, "Cherry"); sortedList.Add(1, "Apple") sortedList.Add(3, "Banana") sortedList.Add(2, "Cherry") $vbLabelText $csharpLabel 访问和修改元素 通过键访问 SortedList 中的元素。 您可以直接检索或修改与键相关的值。 // Accessing a specific value by key string value = sortedList[1]; // Retrieves "Apple" // Modifying a value sortedList[1] = "Avocado"; // Changes the value associated with key 1 to "Avocado" // Accessing a specific value by key string value = sortedList[1]; // Retrieves "Apple" // Modifying a value sortedList[1] = "Avocado"; // Changes the value associated with key 1 to "Avocado" ' Accessing a specific value by key Dim value As String = sortedList(1) ' Retrieves "Apple" ' Modifying a value sortedList(1) = "Avocado" ' Changes the value associated with key 1 to "Avocado" $vbLabelText $csharpLabel 删除项目 使用特定键的 Remove 方法或使用指定索引的 RemoveAt 删除项目。 两者都允许从 SortedList 中受控删除对象。 sortedList.Remove(3); // Removes the entry with key 3 sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0 sortedList.Remove(3); // Removes the entry with key 3 sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0 sortedList.Remove(3) ' Removes the entry with key 3 sortedList.RemoveAt(0) ' Removes the entry at the zero-based index 0 $vbLabelText $csharpLabel 迭代 SortedList 使用 foreach 循环遍历 SortedList,以排序顺序检索键和值。 foreach (KeyValuePair<int, string> kvp in sortedList) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); } foreach (KeyValuePair<int, string> kvp in sortedList) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); } For Each kvp As KeyValuePair(Of Integer, String) In sortedList Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}") Next kvp $vbLabelText $csharpLabel SortedList 的实际使用案例 示例 1:使用简单的键值格式存储和检索数据,其中顺序很重要,例如按学号排序学生姓名。 示例 2:在更复杂的场景中使用 SortedList,例如显示排序的交易日志或排名分数。 最佳实践: 当键是主要访问点并需要保持排序时使用 SortedList。 对于频繁插入,考虑使用像 SortedDictionary 这样的替代方案以获得更好的性能。 性能考虑 将 SortedList 与 Dictionary 和 List 比较 SortedList 与 Dictionary:由于排序开销,与 Dictionary 相比,SortedList 的插入速度较慢。 SortedList 与 List:与列表不同,SortedList 被设计用于按键访问元素并维护排序顺序。 何时使用 SortedList:当您需要排序数据并主要通过键访问它时使用,尤其是对于读写场景。 与 IronPDF 的 PDF 导出集成 IronPDF简介 IronPDF 是一个用于在 C# 中生成和修改 PDF 文件的强大库。 它允许开发者创建来自各种来源的 PDF,编程地添加内容,并自定义 PDF 布局。 在本节中,我们将使用 IronPDF 从 SortedList 数据创建 PDF 报告。 从 SortedList 数据生成 PDF 报告 要开始使用 IronPDF,请安装 IronPDF NuGet 包: Install-Package IronPdf 示例:将数据从 SortedList 导出到 PDF 以下示例演示如何将数据从 SortedList 导出到 PDF 表格。 首先,设置您的 SortedList: SortedList<int, string> sortedList = new SortedList<int, string> { { 1, "Apple" }, { 2, "Banana" }, { 3, "Cherry" } }; SortedList<int, string> sortedList = new SortedList<int, string> { { 1, "Apple" }, { 2, "Banana" }, { 3, "Cherry" } }; Dim sortedList As New SortedList(Of Integer, String) From { {1, "Apple"}, {2, "Banana"}, {3, "Cherry"} } $vbLabelText $csharpLabel 接下来,使用 IronPDF 从这些数据生成 PDF: // Initialize a PDF renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Build HTML string with table format string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>"; foreach (var kvp in sortedList) { html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>"; } html += "</table>"; // Render HTML to PDF and save it PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("sortedList.pdf"); // Initialize a PDF renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Build HTML string with table format string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>"; foreach (var kvp in sortedList) { html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>"; } html += "</table>"; // Render HTML to PDF and save it PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("sortedList.pdf"); ' Initialize a PDF renderer Dim renderer As New ChromePdfRenderer() ' Build HTML string with table format Dim html As String = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>" For Each kvp In sortedList html &= $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>" Next kvp html &= "</table>" ' Render HTML to PDF and save it Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("sortedList.pdf") $vbLabelText $csharpLabel 此代码从 SortedList 数据创建一个 HTML 表格,并使用 IronPDF 将其转换为 PDF。 高级功能 自定义 PDF 布局:IronPDF 允许使用 CSS 样式进行布局、字体、颜色等的自定义。 页眉和页脚:IronPDF 支持页眉和页脚,可以包括页码或徽标。 总结和最佳实践 SortedList 概述:SortedList 是一个排序的键值集合,最适合在数据通过特定键访问且需要保持排序的场景下使用。 使用 IronPDF 进行导出:IronPDF 是一个方便的库,用于将 SortedList 数据导出到 PDF,支持自定义布局和样式。 结论 在本文中,我们探讨了 C# SortedList 类,一个用于管理排序的键值数据集的强大工具。 SortedList 在顺序和通过键的高效访问至关重要的情况下尤其有用。 从创建、添加和删除元素,到与 IronPDF 进行 PDF 导出集成,我们涵盖了在实际应用中使用 SortedList 的实用步骤和最佳实践。 此外,我们展示了IronPDF如何简化将 SortedList 指定值导出为 PDF 格式的任务,使得可以轻松创建专业且组织良好的报告。 IronPDF 的多功能性,包括可定制的页眉、页脚和 CSS 样式,使其成为从您的 C# 应用程序中直接生成 PDF 的绝佳选择。 如果您有兴趣尝试 IronPDF,它提供了 免费试用,可让您在没有承诺的情况下探索其完整功能范围。 此试用版可测试 PDF 生成、自定义选项和现有项目的集成,以确保其符合您的需求。 通过结合 SortedList 和 IronPDF,开发人员获得了一个强大高效的解决方案,用于在 C# 应用程序中管理和报告排序数据。 常见问题解答 什么是 C# SortedList 及其工作原理? C# SortedList 是一种键值对集合,会自动排序键。它是 System.Collections.Generic 命名空间的一部分,对需要排序数据访问的场合很有用。SortedList 使用数组和哈希表之间的混合结构来维护其顺序,提供高效的基于键的访问。 如何在 C# 中创建一个 SortedList? 您可以通过使用默认构造函数或传递一个 IComparer 以进行自定义排序来创建 C# 中的 SortedList。创建 SortedList 的示例是:SortedList sortedList = new SortedList(); 在 C# 中使用 SortedList 相较于 Dictionary 的优势是什么? 使用 SortedList 的主要优势是它会自动对键进行排序,当您需要排序数据并主要通过键访问时,这一点特别有用,尤其是在读操作频繁的场景中。 如何向 C# SortedList 添加项目? 可以使用 Add 方法将项目添加到 C# SortedList。这种方法确保项目按键排序,维护 SortedList 的顺序。 SortedList 能否用于将数据导出为 PDF? 是的,您可以使用 IronPDF 从 SortedList 数据生成 PDF 报告。这样开发者可以从排序键值数据的集合创建 PDF 文档,展示 IronPDF 与 C# 应用程序的集成能力。 C# SortedList 的一些常见应用是什么? C# SortedList 的常见应用包括按学号存储学生的有序列表或维护排序的交易日志。它在需要以排序顺序访问数据的应用中尤其有用。 在插入和删除操作方面,SortedList 的表现如何? 对于插入和删除操作,特别是大数据量,SortedList 可能比 Dictionary 慢。这是因为其混合结构优先考虑有效查找和排序顺序维护。 C# SortedList 的默认键排序顺序是什么? C# SortedList 的默认排序顺序是升序。除非提供了自定义的 IComparer,否则会自动使用 IComparable 接口对键进行排序。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# 修剪(开发者用法)C# 浮点(开发者用法)
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多