.NET 幫助

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

發佈 2024年3月6日
分享:

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

ArrayList 的基礎知識

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

當您實例化一個 ArrayList 時,您正在創建一個可以容納任何物件值的集合,從整數和字串到複雜的自訂物件。 由於像 Add 這樣的方法,使得向 ArrayList 添加元素變得簡單,Add 將物件值附加到集合的末尾,而 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
VB   C#

C# ArrayList(開發人員如何使用):圖 1 - 建立 ArrayList 輸出

此範例展示如何創建新的 ArrayList 並向其中添加不同類型的元素。 foreach 迴圈接著會遍歷 ArrayList,並印出每個元素。

插入元素

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

myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item")
VB   C#

移除元素

若要移除元素,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
VB   C#

範例:管理 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
VB   C#

此代碼片段演示如何:

  • 以一組元素初始化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
VB   C#

在這個例子中,我們首先創建一個名為 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 應用程式中的全面解決方案。

< 上一頁
Math.Round C#(對開發人員的運作方式)
下一個 >
C# 程式碼檢查工具(其運作方式對於開發者)

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

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