.NET 幫助

C# 排序清單(開發人員運作方式)

發佈 2024年12月15日
分享:

C# SortedList 介紹

什麼是 SortedList?

在 C# 中的 C# Sorted List 類別是一種包含鍵值對的集合,類似於字典,但具有根據鍵自動排序的額外優勢。 它是 System.Collections.Generic 命名空间的一部分,旨在提供需要快速访问已排序数据的场景。 SortedList TKey, TValue 非常適合在需要按特定順序維護資料並通過鍵高效訪問元素時使用。

在處理排列表除了 PDF 生成任務之外,IronPDF 與此類完美整合,讓您對 PDF 生成有更多控制。

主要特點和使用案例

  • 鍵值對存儲:像字典一樣,SortedList 將資料以鍵值對的形式存儲。
  • 自動排序:SortedList 會將關聯的值按照鍵值進行排序,預設為升序排列。
  • 高效資料檢索:透過鍵快速檢索相關值,使其適合進行查找。
  • 使用案例:SortedList 對於需要排序資料的應用程式非常有用,例如管理名字、日期或數值的有序列表。

SortedList 如何運作

資料結構概述

公共類別 SortedList 是一種介於陣列和雜湊表之間的混合體,它根據鍵來組織其項目。 內部使用已排序的陣列來保持鍵值的順序,這意味著雖然透過鍵查找的效率較高,但插入和刪除操作可能比 Dictionary 慢。

排序機制

預設情況下,SortedList TKey, TValue 使用 IComparable 介面按升序對鍵進行排序,這確保字串鍵和其他類型實現了默認的比較行為。 如果需要自定義排序順序,可以提供自定義比較器。

優點和限制

  • 優點:

    • 快速鍵存取:提供快速的O(log n)透過鍵訪問。
    • 排序順序:數據會自動按鍵值排序,因此不需要額外排序。
  • 缺點

    • 插入速度:在插入操作方面,尤其是處理大資料時,比字典慢。
    • 非關鍵操作的有限效率:在數據並非主要透過特定鍵值存取的情況下,效率有限。

使用 C# SortedList

創建 SortedList

要在 C# 中建立 SortedList,您可以使用預設建構函式或傳入 IComparer 以進行自定義排序。 SortedList 預設的初始容量為 16,但如果您預先知道大約的大小,可以指定此值來提升性能。

SortedList<int, string> sortedList = new SortedList<int, string>();
SortedList<int, string> sortedList = new SortedList<int, string>();

新增項目

您可以使用 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 中的元素。 您可以直接檢索或修改與鍵關聯的任意指定值。

// 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";

移除項目

您可以使用指定的鍵來移除項目,使用 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

您可以使用 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}");
}

C# 排序列表(開發者如何使用):圖 1

使用 SortedList 的實用範例

  • 範例 1:以簡單的鍵值格式儲存和檢索資料,其順序很重要,例如依學號排列的學生姓名。
  • 範例 2:在更複雜的場景中使用 SortedList,例如顯示排序的交易日誌或排名分數。

    最佳實踐:

  • 當鍵是主要的存取點且需要保持排序時,請使用 SortedList。
  • 對於頻繁的插入,考慮使用像 SortedDictionary 這樣的替代方案以獲得更好的性能。

效能考量

比較 SortedList、Dictionary 及 List

  • SortedList 與 Dictionary:由於排序機制,SortedList 的插入速度比 Dictionary 慢。
  • SortedList 與 List:與 List 不同,SortedList 設計為通過鍵訪問元素,並保持元素的排序順序。

    使用 SortedList 的時機:在需要排序的數據並且主要通過鍵訪問該數據時使用,特別適用於以讀取為主的情況。

與 IronPDF 集成以進行 PDF 導出

IronPDF 介紹

C# 排序清單(開發人員如何運作):圖 2

IronPDF是一個強大的庫,用於在C#中生成和修改PDF文件。 它允許開發人員從各種來源創建 PDF,以程式化方式添加內容,並自定義 PDF 佈局。 在本節中,我們將使用 IronPDF 從 SortedList 數據創建 PDF 報告。

從 SortedList 數據生成 PDF 報告

要開始使用 IronPDF,請安裝 IronPDF NuGet 套件:

Install-Package IronPdf
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" }
};

接下來,使用 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");

C# Sorted List(對開發人員的運作方式):圖 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#應用程式中獲得了一個強大且高效的解決方案,用於管理和報告排序資料。

Kannaopat Udonpant

坎納帕特·烏頓潘

軟體工程師

 LinkedIn

在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
C# Trim(對開發人員的運作方式)
下一個 >
C# 浮點數(它的運作方式對於開發者)