.NET ヘルプ

C# ArrayList(開発者向けの動作方法)

公開済み 2024年3月6日
共有:

ArrayList**クラスは、.NET Frameworkのcollections名前空間の一部で、オブジェクトのコレクションを格納するように設計されています。 これは非ジェネリックコレクションであり、任意のデータ型のアイテムを保持できます。 この機能により非常に柔軟になりますが、ジェネリックコレクションと比較すると型の安全性は低くなります。 についてArrayList重複する要素を含むことができ、有効な値が追加または削除されると動的にリサイズされます。 この記事では、ArrayListの基本とIronPDFライブラリーの特徴.

ArrayListの基本

ArrayList は本質的に非ジェネリックなコレクションであり、任意のデータ型の多数の要素を格納することができるため、さまざまなプログラミングシナリオにおいて柔軟な選択肢となります。 要素を自由に追加したり、固定サイズの制約なしにアイテムを削除したりできる能力は、その主要な特徴の一つです。 ArrayListは、新しい要素を収容するために自動的にサイズを調整します。これは、IListインターフェイスの実装によって可能になった機能です。 この動的リサイズは、ライフタイム中に要素の数が変動するコレクションを必要とするアプリケーションにとって非常に重要です。

ArrayListをインスタンス化すると、整数や文字列から複雑なカスタムオブジェクトまで、あらゆるオブジェクト値を保持できるコレクションが作成されます。 要素をArrayListに追加することは、コレクションの末尾にオブジェクト値を追加するAddメソッドや、指定したインデックスに新しいアイテムを挿入し、必要に応じて既存の要素をシフトして場所を確保するInsertメソッドのおかげで、簡単です。 この柔軟性により、開発者はアプリケーションの進化に合わせてコレクションをより効果的に管理することが可能になります。

要素を扱う

ArrayList に要素を追加するのは簡単で直感的です。例えば、さまざまな種類のデータを収集するシナリオを考えてみましょう。 Addメソッドを使用すると、文字列や整数、さらには他のコレクションまで、任意のオブジェクトをArrayListに追加することができます。 ArrayListの容量は必要に応じて自動的に増加し、新しいオブジェクトの要素objのためのスペースが常に確保されるようになっています。 この自動リサイズは、従来の配列に対する大きな利点です。従来の配列では、手動でリサイズするか、新しい配列を作成して要素数を増やす必要があります。

ArrayListは、特定の位置やintインデックスで要素を挿入および削除するためのメソッドも提供します。 Insertメソッドは、指定された位置に要素を追加することができるため、任意のインデックスに新しいアイテムを正確に配置することが可能になります。 同様に、Remove および RemoveAt メソッドは、削除されるオブジェクトまたはコレクション内でのそのインデックスを指定することにより、アイテムの削除を容易にします。 この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 (C# アレイリスト)(開発者向けの使用方法): 図1 - ArrayListの作成と出力

この例では、新しいArrayListを作成し、さまざまな種類の要素を追加する方法を示します。 foreach ループは、その後、ArrayList を反復処理して、各要素を出力します。

要素の挿入

指定されたインデックスに要素を挿入するには、Insertメソッドを使用します。このインデックスシステムは0から始まることに注意してください。

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

要素の削除

要素を削除するには、Remove メソッドと RemoveAt メソッドが役立ちます。 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を使用する高度な例を作成するには、要素の追加や削除といった基本的な操作だけでなく、ソート、検索、他のデータ構造への変換といったより複雑な操作も示す必要があります。 以下の例を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を標準の配列に変換します。
  • ArrayListを使用してLINQで偶数をフィルタリングし、非ジェネリックなコレクションをLINQの強力なクエリ機能と橋渡しする方法を紹介します。

    C# ArrayList(開発者向けのしくみ):図2 - ArrayList出力

IronPDFの紹介:C# PDFライブラリ

C# ArrayList(開発者向けの動作方法):図3 - IronPDF

IronPDFはC#用の強力なライブラリで、複雑なPDF生成プロセスを簡素化し、PDF操作のための幅広い機能を提供します。HTMLからPDFを生成するテキストや画像の追加、文書のセキュリティ保護など、多くの機能を提供します。

ArrayListとの統合におけるIronPDF

簡単な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#

この例では、最初にitemListという名前のArrayListを作成し、いくつかの文字列アイテムでそれを埋めます。 次に、IronPDFのChromePdfRendererクラスの新しいインスタンスを初期化します。これを使用して、HTMLコンテンツをPDFドキュメントに変換します。

出力

こちらがIronPDFによって生成された出力PDFです。

![以下の内容を日本語に翻訳してください:

C# ArrayList(開発者向けの動作説明):図 4 - PDF出力](/static-assets/pdf/blog/csharp-arraylist/csharp-arraylist-4.webp)

結論

C# ArrayList(開発者向けの動作方法):図5 - ライセンス

ArrayList は、オブジェクトのリストを格納するために C# が提供する強力なコレクションです。 その動的にサイズを調整する能力や、任意の型の要素を保存できることによって、幅広いアプリケーションに対して汎用性があります。 しかし、型の安全性とより良いパフォーマンスのためには、ジェネリックコレクションが推奨されます。 ArrayListとそのメソッドを試してみることで、その使い方やアプリケーションへの適用方法が理解できるようになります。

さらに、C#の能力をPDF操作に拡張したいと考えている方々のために、IronPDFは.NETのPDF関数の無料トライアルその機能を探索するために。 ライセンスは$Lite Licenseから始まり、.NETアプリケーションにPDF機能を統合するための包括的なソリューションを提供します。

< 以前
Math.Round C#(開発者向けの利用方法)
次へ >
C#リンター(開発者のための動作方法)