.NET 帮助

C# 排序列表(如何为开发人员工作)

发布 2024年十二月15日
分享:

C## SortedList 简介

什么是排序列表?

C# 中的 C# 排序列表类是键值对的集合,类似于字典,但具有按键自动排序的额外优势。 它是 System.Collections.Generic 命名空间的一部分,专为需要快速访问分类数据的场景而设计。 SortedList TKey, TValue 是您需要以特定顺序维护数据并按键高效访问元素时的理想选择。

在与分类列表在 PDF 生成任务方面,IronPdf 与本课完美集成,让您对 PDF 生成有更多控制。

主要功能和使用案例

  • 键值对存储:与字典一样,SortedList 将数据存储为键值对。
  • 自动排序:SortedList 会按照关键字对相关值进行排序,默认为升序。
  • 高效数据检索:按键快速检索相关值,适合查找。
  • 使用案例:SortedList 适用于需要排序数据的应用程序,如管理姓名、日期或数值的有序列表。

SortedList 如何工作

数据结构概述

公有类 SortedList 是数组和哈希表的混合体,它通过键来组织项目。 在内部,它使用排序数组来保持键值的顺序,这意味着虽然按键值查找很高效,但插入和删除操作可能比字典慢。

排序机制

默认情况下,SortedList TKey, TValue 使用 IComparable 接口以升序对键进行排序,从而确保字符串键和其他类型实现默认的比较行为。 如果需要自定义排序,可以提供自定义比较器。

优势和局限

  • 优点

    • 快速密钥访问:提供快速 O(日志 n)按键访问。
    • 排序:数据按关键字自动排序,因此无需额外排序。
  • 缺点

    • 插入速度:插入速度比字典慢,尤其是插入大数据时。
    • 非关键操作效率有限:在主要不是通过特定键值访问数据的情况下效率有限。

使用 C## SortedList

创建分类列表

要在 C# 中创建 SortedList,可以使用默认构造函数,如果需要自定义排序,也可以传入 IComparer。 SortedList 的默认初始容量为 16,但如果事先知道大致的大小,可以指定该容量以提高性能。

SortedList<int, string> sortedList = new SortedList<int, string>();
SortedList<int, string> sortedList = new SortedList<int, string>();
Dim sortedList As New SortedList(Of Integer, String)()
VB   C#

添加项目

您可以使用 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")
VB   C#

访问和修改元素

使用键值访问 SortedList 中的元素。 您可以直接检索或修改与键相关联的任何指定值。

// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
' Accessing a specific value by key
Dim value As String = sortedList(1) ' "Apple"
' Modifying a value
sortedList(1) = "Avocado"
VB   C#

删除项目

您可以使用 Remove 方法使用指定键删除项目,或使用 RemoveAt 使用指定索引删除项目。 这两个选项都允许有控制地删除 SortedList 中的指定对象数据。

sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3) ' Removes key 3
sortedList.RemoveAt(0) ' Removes item at a zero-based index 0
VB   C#

迭代排序列表

您可以使用 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
VB   C#

C# 排序列表(如何为开发人员工作):图 1

使用 SortedList 的实用示例

  • 示例 1:以简单的键值格式存储和检索数据,其中顺序很重要,如按卷号存储学生姓名。
  • 示例 2:在更复杂的情况下使用 SortedList,例如显示排序的事务日志或排名分数。

    最佳实践

  • 当键是主要访问点并需要保持排序时,请使用 SortedList。
  • 对于频繁插入的内容,可以考虑使用 SortedDictionary 等替代品,以获得更好的性能。

性能考虑事项

SortedList 与字典和列表的比较

  • 分类列表与字典:SortedList 由于其排序机制,插入速度比 Dictionary 慢。
  • SortedList 与 List:与列表不同,SortedList 用于按键访问元素,并保持元素的排序顺序。

    何时使用 SortedList:当您需要对数据进行排序并主要通过键值进行访问时,尤其是在读取繁重的情况下,请使用 SortedList。

与 IronPDF 集成用于 PDF 导出

IronPDF 简介

C# 排序列表(如何为开发人员工作):图 2

IronPDF是一个功能强大的库,用于用 C# 生成和修改 PDF 文件。 它允许开发人员从各种来源创建 PDF,以编程方式添加内容,并自定义 PDF 布局。 在本节中,我们将使用 IronPDF 从 SortedList 数据中创建 PDF 报告。

从分类列表数据生成 PDF 报告

要开始使用 IronPDF,请安装 IronPDF NuGet 软件包:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

示例:将数据从排序列表导出到 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"}
}
VB   C#

接下来,使用 IronPDF 将这些数据生成 PDF:

ChromePdfRenderer renderer = new ChromePdfRenderer();
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>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
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>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
Dim renderer As New ChromePdfRenderer()
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>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("sortedList.pdf")
VB   C#

C# 排序列表(如何为开发人员工作):图 3

该代码从 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# Trim(如何为开发人员工作)
下一步 >
C# Float(面向开发人员的工作原理)