.NET 幫助

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

ArrayList 類別是 .NET Framework 集合命名空間的一部分,旨在儲存物件集合。 它是一個非泛型集合,這意味著它可以容納任何數據類型的項目。 這個功能讓它具有高度的靈活性,但相比於泛型集合,類型安全性較低。 ArrayList 可以包含重複的元素,並允許在添加或移除有效值時動態調整大小。 在本文中,我們將討論ArrayList的基本知識和IronPDF Library Features

ArrayList 的基礎知識

ArrayList 本質上是一個非泛型集合,能夠存儲任意數據類型的多個元素,這使其成為各種程式設計情境下的多功能選擇。 能夠隨意添加元素或移除項目而不受固定大小限制是其關鍵特徵之一。 ArrayList 通過其對 IList 介面的實作,能自動調整其大小以容納新元素。 這種動態調整大小對於需要在其生命週期內具有可變數量元素集合的應用程式至關重要。

當您實例化一個 ArrayList 時,您正在創建一個可以容納任何物件值的集合,從整數和字串到複雜的自訂物件。 由於像Add這樣的方法,將元素添加到ArrayList非常簡單,它將一個物件值追加到集合的末尾,而Insert則將新項目插入到指定的索引處,必要時會移動現有元素以騰出空間。 這種靈活性使開發者能夠更有效地管理集合,隨著應用程式發展而適應其需求。

與元素一起工作

將元素添加到ArrayList非常簡單且直觀。例如,考慮一種情況,即您正在構建各種類型數據的集合。 使用Add方法,您可以將任何物件附加到您的ArrayList中,從字串到整數,甚至其他集合。 ArrayList 的容量會根據需要自動增加,確保總有空間可容納新的物件 obj 元素。 這種自動調整大小是相比傳統陣列的一大優勢,傳統陣列需要手動調整大小或創建新陣列來容納更多元素。

ArrayList 也提供在特定位置或整型索引處插入和移除元素的方法。 Insert 方法允許您在指定位置添加一個元素,有效地讓您可以在集合中的任何指定索引處精確地放置新項目。 同樣地,RemoveRemoveAt 方法可通過指定要刪除的物件或其在集合中的索引,來方便地刪除項目。 這種對ArrayList內元素的細緻控制,使其成為管理動態數據的強大工具。

創建和添加元素

要開始使用ArrayList,首先需要創建一個它的實例。 然後,您可以使用 Add 方法將元素添加到 ArrayList,該方法會將物件插入到 ArrayList 的末尾。

class Program
{
// public static void main
    public static void Main()
    {
        ArrayList myArrayList = new ArrayList();
        myArrayList.Add("Hello");
        myArrayList.Add(100);
        var item = "World";
        myArrayList.Add(item);
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
class Program
{
// public static void main
    public static void Main()
    {
        ArrayList myArrayList = new ArrayList();
        myArrayList.Add("Hello");
        myArrayList.Add(100);
        var item = "World";
        myArrayList.Add(item);
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
Friend Class Program
' public static void main
	Public Shared Sub Main()
		Dim myArrayList As New ArrayList()
		myArrayList.Add("Hello")
		myArrayList.Add(100)
		Dim item = "World"
		myArrayList.Add(item)
		For Each obj In myArrayList
			Console.WriteLine(obj)
		Next obj
	End Sub
End Class
$vbLabelText   $csharpLabel

C# ArrayList(開發者如何運作):圖 1 - 創建 ArrayList 輸出

此示例演示如何創建新的ArrayList並向其中添加不同類型的元素。 foreach 迴圈然後遍歷 ArrayList,打印每個元素。

插入元素

要在指定索引處插入元素,請使用 Insert 方法,注意這是以零為基礎的索引系統。

myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item")
$vbLabelText   $csharpLabel

移除元素

要移除元素,RemoveRemoveAt 方法非常有用。 Remove 刪除特定物件的第一次出現,而 RemoveAt 則刪除指定整數索引處的元素。

myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0); // Removes the element at index 0
myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0); // Removes the element at index 0
myArrayList.Remove("Hello") ' Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0) ' Removes the element at index 0
$vbLabelText   $csharpLabel

範例:管理 ArrayList

在 C# 中創建一個使用ArrayList的高級示例,不僅涉及基本操作如添加或刪除元素,還包括更複雜的操作,如排序、搜索以及將ArrayList轉換為其他數據結構。 將以下範例放在 Program.cs 文件中以執行:

using System;
using System.Collections;
using System.Linq;
class AdvancedArrayListExample
{
    static void Main(string [] args)
    {
        // Initialize an ArrayList with some elements
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        // Adding elements
        numbers.Add(6); // Add an element to the end
        numbers.AddRange(new int [] { 7, 9, 0 }); // Add multiple elements from a specified collection.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Removing elements
        numbers.Remove(1); // Remove the element 1
        numbers.RemoveAt(0); // Remove the first element
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Sorting
        numbers.Sort(); // Sort the ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Searching
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); // Find the index of the element
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        // Converting ArrayList to Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Demonstrate LINQ with ArrayList (Requires System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results.
        Console.WriteLine("Even Numbers:");
        evenNumbers.ForEach(n => Console.Write(n + " "));
        Console.WriteLine();
    }
}
using System;
using System.Collections;
using System.Linq;
class AdvancedArrayListExample
{
    static void Main(string [] args)
    {
        // Initialize an ArrayList with some elements
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        // Adding elements
        numbers.Add(6); // Add an element to the end
        numbers.AddRange(new int [] { 7, 9, 0 }); // Add multiple elements from a specified collection.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Removing elements
        numbers.Remove(1); // Remove the element 1
        numbers.RemoveAt(0); // Remove the first element
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Sorting
        numbers.Sort(); // Sort the ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Searching
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); // Find the index of the element
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        // Converting ArrayList to Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Demonstrate LINQ with ArrayList (Requires System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results.
        Console.WriteLine("Even Numbers:");
        evenNumbers.ForEach(n => Console.Write(n + " "));
        Console.WriteLine();
    }
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.Linq
Friend Class AdvancedArrayListExample
	Shared Sub Main(ByVal args() As String)
		' Initialize an ArrayList with some elements
		Dim numbers As New ArrayList() From { 5, 8, 1, 3, 2 }
		' Adding elements
		numbers.Add(6) ' Add an element to the end
		numbers.AddRange(New Integer () { 7, 9, 0 }) ' Add multiple elements from a specified collection.
		Console.WriteLine("Initial ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Removing elements
		numbers.Remove(1) ' Remove the element 1
		numbers.RemoveAt(0) ' Remove the first element
		Console.WriteLine("After Removal:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Sorting
		numbers.Sort() ' Sort the ArrayList
		Console.WriteLine("Sorted ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Searching
		Dim searchFor As Integer = 5
		Dim index As Integer = numbers.IndexOf(searchFor) ' Find the index of the element
		If index <> -1 Then
			Console.WriteLine($"Element {searchFor} found at index {index}")
		Else
			Console.WriteLine($"Element {searchFor} not found.")
		End If
		Console.WriteLine(vbLf)
		' Converting ArrayList to Array
		Dim numbersArray() As Integer = DirectCast(numbers.ToArray(GetType(Integer)), Integer ())
		Console.WriteLine("Converted Array:")
		For Each number As Integer In numbersArray
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Demonstrate LINQ with ArrayList (Requires System.Linq)
		Dim evenNumbers = numbers.Cast(Of Integer)().Where(Function(n) n Mod 2 = 0).ToList() ' Assign values to evenNumbers from the filtered results.
		Console.WriteLine("Even Numbers:")
		evenNumbers.ForEach(Sub(n) Console.Write(n & " "))
		Console.WriteLine()
	End Sub
End Class
$vbLabelText   $csharpLabel

此代碼片段演示如何:

  • 用一組元素初始化ArrayList
  • ArrayList添加單個和多個元素。
  • 按值和按索引移除元素。
  • 排序ArrayList以排列元素。
  • 搜尋元素並找到其索引。
  • ArrayList轉換為標準數組。
  • 使用 LINQ 與 ArrayList 來過濾偶數,展示如何將非泛型集合與 LINQ 強大的查詢功能相結合。

    C# ArrayList(對開發者的工作方式):圖 2 - ArrayList 輸出

IronPDF 介紹:C# PDF 庫

C# ArrayList(它如何為開發人員工作):圖3 - IronPDF

IronPDF 是一個強大的 C# 函式庫,簡化了複雜的 PDF 生成過程,提供了一系列用於 PDF 操作的功能,包括從 HTML 生成 PDF、添加文字和圖像、保護文件等多種功能。

將 IronPDF 與 ArrayList 整合

讓我們編寫一個簡單的 C# 程式,創建一個包含項目的ArrayList,然後使用 IronPDF 生成列出這些項目的 PDF 文件。

using IronPdf;
using System;
using System.Collections;
class pdfocde
{
    static void Main(string [] args)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new ArrayList and add some items
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        // Initialize a new PDF document
        var Renderer = new ChromePdfRenderer();
        // Create an HTML string to hold our content
        string htmlContent = "<h1>Items List</h1><ul>";
        // Iterate over each item in the ArrayList and add it to the HTML string
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        // Convert the HTML string to a PDF document
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        PDF.SaveAs("e:\\ItemList.pdf");
        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
using IronPdf;
using System;
using System.Collections;
class pdfocde
{
    static void Main(string [] args)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new ArrayList and add some items
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        // Initialize a new PDF document
        var Renderer = new ChromePdfRenderer();
        // Create an HTML string to hold our content
        string htmlContent = "<h1>Items List</h1><ul>";
        // Iterate over each item in the ArrayList and add it to the HTML string
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        // Convert the HTML string to a PDF document
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        PDF.SaveAs("e:\\ItemList.pdf");
        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
Imports IronPdf
Imports System
Imports System.Collections
Friend Class pdfocde
	Shared Sub Main(ByVal args() As String)
		IronPdf.License.LicenseKey = "License"
		' Create a new ArrayList and add some items
		Dim itemList As New ArrayList()
		itemList.Add("Apple")
		itemList.Add("Banana")
		itemList.Add("Cherry")
		itemList.Add("Date")
		' Initialize a new PDF document
		Dim Renderer = New ChromePdfRenderer()
		' Create an HTML string to hold our content
		Dim htmlContent As String = "<h1>Items List</h1><ul>"
		' Iterate over each item in the ArrayList and add it to the HTML string
		For Each item In itemList
			htmlContent &= $"<li>{item}</li>"
		Next item
		htmlContent &= "</ul>"
		' Convert the HTML string to a PDF document
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
		' Save the PDF to a file
		PDF.SaveAs("e:\ItemList.pdf")
		Console.WriteLine("PDF file 'ItemList.pdf' has been generated.")
	End Sub
End Class
$vbLabelText   $csharpLabel

在此範例中,我們首先建立一個名為itemListArrayList,並以多個字串項目填入其中。 接下來,我們會初始化 IronPDF 的 ChromePdfRenderer 類的新實例,我們將使用它來將 HTML 內容轉換為 PDF 文件。

輸出

以下是由 IronPDF 生成的輸出 PDF:

C# ArrayList(它如何適用於開發人員):圖 4 - PDF 輸出

結論

C# ArrayList(開發人員的工作原理):圖 5 - 授權

ArrayList 是由 C# 提供的一個強大的集合,用於存儲對象的列表。 它能夠動態調整大小並儲存任何類型的元素,這使其在廣泛的應用中非常多才多藝。 然而,為了類型安全和更好的效能,建議使用泛型集合。 試驗 ArrayList 及其方法將有助於您了解其用途以及如何將其融入您的應用程式中。

此外,對於那些有興趣將他們的 C# 功能擴展到 PDF 操作的人來說,IronPDF 提供了.NET 中 PDF 功能的免費試用以探索其功能。 授權證書從$749起,提供將 PDF 功能整合到 .NET 應用程式中的全面解決方案。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
Math.Round C#(對開發人員的運作方式)
下一個 >
C# 程式碼檢查工具(其運作方式對於開發者)