.NET 幫助

C# 集合(開發人員如何使用)

發佈 2024年3月6日
分享:

介紹

C# 在眾多可用的程式語言中,已成為開發人員熱門且適應性強的選擇。 集合的概念是 C# 廣泛的庫和框架的核心,這是該語言的主要優勢之一。 在 C# 中,集合對於有效地存儲和組織數據至關重要。 他們為開發人員提供了一系列有效的工具來解決具挑戰性的編程問題。 在本文中,我們將深入探討集合,涵蓋其特點、類型和最佳使用策略。

如何使用 C# 集合

  1. 建立一個新的主控台應用程式專案。

  2. 在 C# 中為集合創建一個對象。

  3. 將值添加到集合類中,該類可以存儲多組對象。

  4. 對值操作進行處理,如添加、移除、排序等。

  5. 顯示結果並處理物件。

C#: 了解集合

在 C# 中,集合是讓程式設計師操作和儲存一組物件類別的容器。 這些物件具有靈活性,能夠適應多種程式設計環境,它們可能是相同或不同的類型。 大多數集合類在 C# 中實現 System 的組件,這意味著需要導入諸如System.Collections和 System.Collections.Generic,它提供了多種集合類別,包括泛型和非泛型。 集合還允許動態記憶體分配,以及在集合類別中新增、搜尋和排序項目。

非泛型集合類型

ArrayList、Hashtable 和 Queue 是 C# 中一些非泛型集合類別,這些類別在該語言的最初版本中就已包含。 這些集合提供了一種替代方法,讓您不需要明確定義您想要保留和使用的物品類型。 然而,開發人員常常選擇泛型集合,因為它們具有更高的性能和類型安全性。

泛型集合

後來的 C# 版本加入了泛型集合,以克服非泛型集合的缺點。 它們在編譯期間提供類型安全性,讓開發者能夠處理嚴格類型化的數據。 泛型集合類別 List,詞典<TKey, TValue>,隊列,和Stack有幾個是經常使用的。 這些集合是當代 C# 開發中的首選選項,因為它們提供更好的性能和編譯時類型驗證。

主要的 C# 集合類型

1. 列表

List 是一種動態陣列,方便快速添加和移除元素。類別。 由於提供過濾、搜尋和操作元件的方式,它是需要可調整大小集合的情況下的靈活選擇。

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // adds element '6' to the end
numbers.Remove(3); // removes all the items that are '3'
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // adds element '6' to the end
numbers.Remove(3); // removes all the items that are '3'
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Add(6) ' adds element '6' to the end
numbers.Remove(3) ' removes all the items that are '3'
VB   C#

2. Dictionary<TKey, TValue>

透過快速查詢速度,鍵值對集合由Dictionary<TKey, TValue>類表示。 它常用於需要通過特殊鍵值快速存取數據的情況。 此鍵用於訪問字典中的元素。

Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); // the string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // setting the key "Jane" to hold the value 30
Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); // the string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // setting the key "Jane" to hold the value 30
Dim ageMap As New Dictionary(Of String, Integer)()
ageMap.Add("John", 25) ' the string "John" is the key that can access the value 25
ageMap("Jane") = 30 ' setting the key "Jane" to hold the value 30
VB   C#

3. 隊列和堆疊

先進先出集合(先入先出),後進先出(後進先出) 範型是分別由通用隊列實現的和通用堆栈類別。 它們可用於根據應用程式的需求管理特定順序中的項目。

Queue<string> tasks = new Queue<string>(); // creating a queue class
tasks.Enqueue("Task 1"); // adding to the queue
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); // creating a stack class
numbers.Push(3.14); // adding to the stack
numbers.Push(2.71);
Queue<string> tasks = new Queue<string>(); // creating a queue class
tasks.Enqueue("Task 1"); // adding to the queue
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); // creating a stack class
numbers.Push(3.14); // adding to the stack
numbers.Push(2.71);
Dim tasks As New Queue(Of String)() ' creating a queue class
tasks.Enqueue("Task 1") ' adding to the queue
tasks.Enqueue("Task 2")
Dim numbers As New Stack(Of Double)() ' creating a stack class
numbers.Push(3.14) ' adding to the stack
numbers.Push(2.71)
VB   C#

4. HashSet

唯一項目以無序集合方式排列是由 HashSet 表示類別。 它提供了有效的方法來執行差集、聯集和交集等集合運算。

HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); // combining setA and setB
HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); // combining setA and setB
Dim setA As New HashSet(Of Integer) From {1, 2, 3, 4}
Dim setB As New HashSet(Of Integer) From {3, 4, 5, 6}
Dim unionSet As New HashSet(Of Integer)(setA)
unionSet.UnionWith(setB) ' combining setA and setB
VB   C#

IronPDF

C# 集合(它如何為開發者運作):圖 1 - IronPDF 網站頁面

一個名為 C# 的庫IronPDF使在 .NET 應用程式中創建、編輯和顯示 PDF 文件變得簡單。 它提供多種授權選擇、跨平台相容性、高品質渲染以及HTML轉PDF功能。 IronPDF 的使用者友好 API 使得處理 PDF 更加簡單,成為 C# 開發人員的一個重要工具。

IronPDF 的突出功能是其HTML轉PDF轉換功能,此功能保留所有版面和樣式。 它從網頁內容生成 PDF,使其非常適合用於報告、發票和文檔。 HTML 文件、URL 和 HTML 字串可以輕鬆地轉換為 PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

IronPDF的主要功能包括:

  • 將 HTML 轉換為 PDF:使用 IronPDF,程式設計師可以從 HTML 文本(包括 CSS 和 JavaScript)創建 PDF 文件。 這對那些已經熟悉網頁開發工具並希望使用HTML和CSS製作PDF的人特別有用。
  • PDF 生成與操作:該庫提供了以程式方式從頭開始建立 PDF 文件的能力。 此外,它還能夠編輯現有的PDF,允許進行提取文本、添加水印、分割PDF等操作。
  • 卓越呈現:IronPDF 使用渲染引擎生成高水準的 PDF 輸出,確保最終的文件保留清晰度和視覺完整性。
  • 跨平台相容性:IronPDF 被設計用於 .NET Core 和 .NET Framework,使其能夠在各種應用程式和不同平台上使用。
  • 效能優化:即使在處理大型或複雜的 PDF 文件時,該庫也設計為提供高效的 PDF 製作和渲染。

    要了解更多關於IronPDF文件的資訊,請參閱IronPDF 文件.

安裝 IronPDF

首先使用套件管理器控制台或NuGet套件管理器安裝IronPDF庫:

Install-Package IronPdf

C# 集合(適用於開發人員):圖 2 - 使用套件管理器控制台安裝 IronPDF

使用 NuGet 套件管理器搜尋套件「IronPDF」是另一個選擇。我們可以從這個列表中選擇並下載與 IronPDF 相關的所有 NuGet 套件中所需的套件。

C# 集合 (開發者如何使用):圖 3 - 使用 NuGet 套件管理器安裝 IronPDF

使用 IronPDF 的集合進行文件創建

在探討與IronPDF的介面之前,了解集合在資料結構和組織中的角色是至關重要的。 開發人員可以使用集合以有組織的方式存儲、檢索和修改物品的分組。 有很多不同類型可用,例如 List,詞典<TKey, TValue>,和 HashSet,開發人員可以選擇最符合其需求的集合。

想像一下,您需要製作一份包含銷售交易清單的報告。 可以使用列表有效地組織數據,作為進一步處理和顯示的基礎。

public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    // Add more transactions as needed
};
public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    // Add more transactions as needed
};
Public Class Transaction
	Public Property ProductName() As String
	Public Property Amount() As Decimal
	Public Property [Date]() As DateTime
End Class
Private transactions As New List(Of Transaction) From {
	New Transaction With {
		.ProductName = "Product A",
		.Amount = 100.50D,
		.Date = DateTime.Now.AddDays(-2)
	},
	New Transaction With {
		.ProductName = "Product B",
		.Amount = 75.20D,
		.Date = DateTime.Now.AddDays(-1)
	}
}
VB   C#

在 PDF 中,我們將製作一個簡單的表格,列出每個產品名稱、交易金額和日期。

var pdfDocument = new IronPdf.HtmlToPdf();
// HTML content with a table populated by data from the 'transactions' list
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";
// Convert HTML to PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
var pdfDocument = new IronPdf.HtmlToPdf();
// HTML content with a table populated by data from the 'transactions' list
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";
// Convert HTML to PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
Dim pdfDocument = New IronPdf.HtmlToPdf()
' HTML content with a table populated by data from the 'transactions' list
Dim htmlContent As String = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>"
For Each transaction In transactions
	htmlContent &= $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>"
Next transaction
htmlContent &= "</table>"
' Convert HTML to PDF
Dim pdf As PdfDocument = pdfDocument.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs(pdfFilePath)
VB   C#

開發人員有選擇將生成的 PDF 文檔保存到磁碟或顯示給用戶的選項。 IronPDF 提供多種輸出選擇,包括瀏覽器串流、檔案儲存和雲端儲存整合。

C# 集合(對開發人員的運作方式):圖 4 - 由前面的代碼生成的 PDF

上面的螢幕顯示了從上述程式碼生成的輸出。 要了解更多關於代碼的信息,請參考使用 HTML 生成 PDF 範例.

結論

通過將集合與IronPDF結合,可以提供多種動態文件製作的機會。 開發者可以利用集合來有效管理和組織數據,而IronPDF讓創建視覺上美觀的PDF文件變得輕鬆簡單。 IronPDF 和集合的結合力量為 C# 應用程式中的動態內容生成提供了可靠且可調適的解決方案,不論您正在製作哪種類型的文件 ─ 發票、報告或其他文件。

IronPDF 的 $749 Lite 版本包括一年的軟體支援、升級選項及永久許可證。 使用者還可以在附有浮水印的試用期間,於真實情境中評估該產品。 如需了解有關IronPDF的成本、許可和免費試用的更多信息,請訪問IronPDF 授權資訊. 欲了解更多有關 Iron Software 的資訊,請訪問Iron Software 網站.

< 上一頁
MSTest C#(它如何為開發人員工作)
下一個 >
C# Null 條件運算子(開發人員如何運作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >