.NET ヘルプ

C#初期化リスト(開発者のための仕組み)

公開済み 2024年10月24日
共有:

リストはSystem.Collections.Generic名前空間は、データのコレクションを処理するための汎用性があります。 C#のリストは動的で、実行時にサイズを変更できます。この柔軟性は、要素の数が前もってわからない多くのソフトウェアエンジニアリングのシナリオで非常に役立ちます。 C#でリストを初期化するさまざまな方法に飛び込んでみましょう。 基本的なテクニック、オブジェクト・イニシャライザの構文、コレクション・イニシャライザ、そしてIronPDFライブラリ.

基本的なリストの初期化

リストを初期化するには、まずリスト ここで、Tはリスト内の要素の型です。最も一般的な型は文字列ですが、任意の型を使用できます。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        // Initialize an empty list
        List<string> fruits = new List<string>();
        // Adding elements to the list
        fruits.Add("Apple");
        fruits.Add("Banana");
        fruits.Add("Cherry");
        // Display the list
        foreach (var fruit in fruits)
        {
            Console.WriteLine(fruit);
        }
    }
}
using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        // Initialize an empty list
        List<string> fruits = new List<string>();
        // Adding elements to the list
        fruits.Add("Apple");
        fruits.Add("Banana");
        fruits.Add("Cherry");
        // Display the list
        foreach (var fruit in fruits)
        {
            Console.WriteLine(fruit);
        }
    }
}
Imports System
Imports System.Collections.Generic
Friend Class Program
	Shared Sub Main()
		' Initialize an empty list
		Dim fruits As New List(Of String)()
		' Adding elements to the list
		fruits.Add("Apple")
		fruits.Add("Banana")
		fruits.Add("Cherry")
		' Display the list
		For Each fruit In fruits
			Console.WriteLine(fruit)
		Next fruit
	End Sub
End Class
VB   C#

上記の例では、空のリストを作成し、Addメソッドを使用して要素を追加しました。 リスト は文字列のリストを表し、Add メソッドを使用して値を入力します。

コレクション・イニシャライザ構文の使用

C#では、コレクション・イニシャライザ構文を使用してリストを初期化する、より簡潔な方法があります。 これにより、Addメソッドを繰り返し呼び出すことなく、リストが作成されたときに直接入力することができます。

public void InitializeList()
{
    List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
}
public void InitializeList()
{
    List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
}
Public Sub InitializeList()
	Dim fruits As New List(Of String) From {"Apple", "Banana", "Cherry"}
End Sub
VB   C#

このコードは、前の例と同じ結果を達成しますが、よりコンパクトな形式です。 コレクション・イニシャライザを使用すると、1つのステートメントでリストを値で初期化できるため、コードが読みやすくなります。

オブジェクトのイニシャライザとリストの初期化

オブジェクト・イニシャライザ構文は、主にカスタム・オブジェクトを扱う場合に、リストを初期化するもう1つの方法です。 オブジェクト・イニシャライザーがリストでどのように動作するかの例を示します:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
List<Person> people = new List<Person>
{
    new Person { Name = "John", Age = 30 },
    new Person { Name = "Jane", Age = 25 },
    new Person { Name = "Jack", Age = 35 }
};
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
List<Person> people = new List<Person>
{
    new Person { Name = "John", Age = 30 },
    new Person { Name = "Jane", Age = 25 },
    new Person { Name = "Jack", Age = 35 }
};
Friend Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Private people As New List(Of Person) From {
	New Person With {
		.Name = "John",
		.Age = 30
	},
	New Person With {
		.Name = "Jane",
		.Age = 25
	},
	New Person With {
		.Name = "Jack",
		.Age = 35
	}
}
VB   C#

この例では、オブジェクト・イニシャライザーを使用して Person オブジェクトのリストを作成します。 Person クラスには 2 つのプロパティがあります:Name と Age の 2 つのプロパティがあり、リストの作成時に明示的に値が割り当てられます。

初期サイズのリストの作成

リストのサイズは動的ですが、リストが保持する要素の数がおおよそわかっていれば、初期容量を指定することができます。 メモリの再割り当ての回数を減らすことで、パフォーマンスを向上させることができます。

List<string> fruits = new List<string>(10); // Initial size of 10
List<string> fruits = new List<string>(10); // Initial size of 10
Dim fruits As New List(Of String)(10) ' Initial size of 10
VB   C#

これは、初期容量が10の空のリストを作成します。要素は追加されませんが、内部配列のサイズを変更することなく、最大10個の要素を保持するのに十分なメモリが割り当てられます。

配列からのリストの初期化

既存の配列からリストを初期化することもできます。 引数 これは、配列があり、それを柔軟にリストに変換したい場合に便利です。

// New String array of fruit
string[] fruitArray = { "Apple", "Banana", "Cherry" };
List<string> fruits = new List<string>(fruitArray);
// New String array of fruit
string[] fruitArray = { "Apple", "Banana", "Cherry" };
List<string> fruits = new List<string>(fruitArray);
' New String array of fruit
Dim fruitArray() As String = { "Apple", "Banana", "Cherry" }
Dim fruits As New List(Of String)(fruitArray)
VB   C#

ここでは、新しい配列が作成され、リストの初期化に使用されます。これにより、fruitArray 配列がリストに変換されます。任意の IEnumerableリストコンストラクタには、初期化のために、配列などを渡すことができます。

AddRangeメソッドの使用

既存のアイテムのコレクションがある場合、AddRange メソッドを使用すると、複数の要素をまとめてリストに追加できます。

List<string> fruits = new List<string> { "Apple", "Banana" };
string[] moreFruits = { "Cherry", "Date", "Elderberry" };
fruits.AddRange(moreFruits);
List<string> fruits = new List<string> { "Apple", "Banana" };
string[] moreFruits = { "Cherry", "Date", "Elderberry" };
fruits.AddRange(moreFruits);
Dim fruits As New List(Of String) From {"Apple", "Banana"}
Dim moreFruits() As String = { "Cherry", "Date", "Elderberry" }
fruits.AddRange(moreFruits)
VB   C#

この例では、2つの要素を含むリストから開始し、AddRangeを使用して配列から複数の新しい項目を追加します。 この方法では、要素を1つずつ追加することで、複数の再割り当ての必要性を最小限に抑え、パフォーマンスを向上させることができます。

カスタム・オブジェクトによるリストの初期化

カスタム・オブジェクトのリストを初期化する場合、オブジェクト・イニシャライザとコレクション・イニシャライザを組み合わせて、1つの式で複雑なデータ構造を作成することができます。

List<Person> people = new List<Person>
{
    new Person { Name = "Alice", Age = 28 },
    new Person { Name = "Bob", Age = 32 },
    new Person { Name = "Charlie", Age = 40 }
};
List<Person> people = new List<Person>
{
    new Person { Name = "Alice", Age = 28 },
    new Person { Name = "Bob", Age = 32 },
    new Person { Name = "Charlie", Age = 40 }
};
Dim people As New List(Of Person) From {
	New Person With {
		.Name = "Alice",
		.Age = 28
	},
	New Person With {
		.Name = "Bob",
		.Age = 32
	},
	New Person With {
		.Name = "Charlie",
		.Age = 40
	}
}
VB   C#

このテクニックでは、1つのステートメントでオブジェクトのリストを作成および初期化できるため、コードが簡潔で読みやすくなります。

拡張メソッドによるリストの初期化

カスタムな方法でリストを初期化する拡張メソッドを実装することもできます。 拡張メソッドは、元の構造を変更することなく、新しい機能で既存の型を改良するメカニズムを提供します。

public static class ListExtensions
{
    public static List<T> InitializeWith<T>(this List<T> list, params T[] elements)
    {
        list.AddRange(elements);
        return list;
    }
}
// Usage
List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry");
public static class ListExtensions
{
    public static List<T> InitializeWith<T>(this List<T> list, params T[] elements)
    {
        list.AddRange(elements);
        return list;
    }
}
// Usage
List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry");
Public Module ListExtensions
	<System.Runtime.CompilerServices.Extension> _
	Public Function InitializeWith(Of T)(ByVal list As List(Of T), ParamArray ByVal elements() As T) As List(Of T)
		list.AddRange(elements)
		Return list
	End Function
End Module
' Usage
Private fruits As List(Of String) = (New List(Of String)()).InitializeWith("Apple", "Banana", "Cherry")
VB   C#

ここでは、リストに要素を追加してリスト自体を返す拡張メソッド InitializeWith を定義します。 これによって、リストの初期化および追加を連鎖させることができます。

IronPDF: C# PDFライブラリ

C#初期化リスト(開発者のための仕組み):図1 - IronPDF:C# PDFライブラリ

果物のリストのようなリストがあれば、それをすぐにHTMLテーブルを作成し、PDFとしてレンダリングする。使用してIronPDFしかも、わずか数行のコードで。 プロセスは簡単です:リストを初期化し、HTMLに変換し、IronPdfにPDFを生成させます。 例を挙げよう:

using IronPdf;
using System;
using System.Collections.Generic;
using System.Text;
class Program
{
    static void Main()
    {
        // Initialize a list of strings representing data
        List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
        // Convert the list to an HTML table
        StringBuilder htmlContent = new StringBuilder();
        htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>");
        foreach (var fruit in fruits)
        {
            htmlContent.Append($"<tr><td>{fruit}</td></tr>");
        }
        htmlContent.Append("</table>");
        // Render the HTML to PDF using IronPDF
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
        // Save the PDF to a file
        PDF.SaveAs("FruitsList.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
using IronPdf;
using System;
using System.Collections.Generic;
using System.Text;
class Program
{
    static void Main()
    {
        // Initialize a list of strings representing data
        List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
        // Convert the list to an HTML table
        StringBuilder htmlContent = new StringBuilder();
        htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>");
        foreach (var fruit in fruits)
        {
            htmlContent.Append($"<tr><td>{fruit}</td></tr>");
        }
        htmlContent.Append("</table>");
        // Render the HTML to PDF using IronPDF
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
        // Save the PDF to a file
        PDF.SaveAs("FruitsList.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.Text
Friend Class Program
	Shared Sub Main()
		' Initialize a list of strings representing data
		Dim fruits As New List(Of String) From {"Apple", "Banana", "Cherry"}
		' Convert the list to an HTML table
		Dim htmlContent As New StringBuilder()
		htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>")
		For Each fruit In fruits
			htmlContent.Append($"<tr><td>{fruit}</td></tr>")
		Next fruit
		htmlContent.Append("</table>")
		' Render the HTML to PDF using IronPDF
		Dim Renderer = New ChromePdfRenderer()
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())
		' Save the PDF to a file
		PDF.SaveAs("FruitsList.pdf")
		Console.WriteLine("PDF generated successfully.")
	End Sub
End Class
VB   C#

C#初期化リスト(開発者のための仕組み):図2 - 出力例

このコードはリストを初期化し、そこからHTMLテーブルを作成し、IronPDFを使ってPDFファイルを作成します。データコレクションからPDFを生成するシンプルで直接的な方法です。

結論

C#初期化リスト(開発者のための仕組み):図3 - IronPDFライセンスページ

C#におけるリストの初期化は、すべてのソフトウェアエンジニアが習得すべき基本的な概念です。 文字列の単純なリストであれ、オブジェクトの複雑なリストであれ、C#はリストを効率的に初期化し、入力するためのメソッドをいくつか提供しています。 基本的な初期化からオブジェクトやコレクションのイニシャライザーまで、これらのテクニックは、クリーンで簡潔、保守性の高いコードを書くのに役立ちます。

IronPDFは無料試用初期投資をすることなく製品を試すことができます。 お客様のニーズを満たすと確信された場合、749ドルからライセンスをご利用いただけます。

< 以前
C#命名規則(開発者のための仕組み)
次へ >
FileStream C# (開発者のための仕組み)