フッターコンテンツにスキップ
.NETヘルプ

C# List (開発者向けの仕組み)

リストは、C#でデータのコレクションを保存および操作するために使用される、多才で動的なデータ構造です。 これらは System.Collections.Generic 名前空間の一部であり、強力で型安全なコレクションクラスと強く型付けされたオブジェクトを提供します。 この初心者向けのチュートリアルでは、C# リストの使用方法の基本を説明し、要素の作成/追加、指定されたインデックスまたは最初の出現のアクセス、指定された要素の変更、要素の削除、および一般的な使用例を含みます。

リストの作成

List クラスを使用し始めるには、最初にSystem.Collections.Generic 名前空間をコードに含める必要があります。

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
$vbLabelText   $csharpLabel

ジェネリック名前空間を追加した後、角括弧 (< >) の中に格納したいすべての要素のデータ型を指定することで新しい List オブジェクトを作成します。 整数のリストを作成する方法の例を次に示します。

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
$vbLabelText   $csharpLabel

また、初期値でリストを初期化するか、このように指定されたコレクションによって定義することもできます。

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
$vbLabelText   $csharpLabel

リストのデフォルトの初期容量を指定することもできます。指定された初期容量は、そのリストのデフォルトの最大容量です。

リストのメソッド

リストへの要素数の追加

List に要素を追加するには、Add() メソッドを使用します。

numbers.Add(1);     // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1);     // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)
$vbLabelText   $csharpLabel

指定されたコレクションからリストに要素の範囲を追加するには、AddRange メソッドを使用します。

List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
$vbLabelText   $csharpLabel

リスト要素へのアクセス

配列と同様に、インデックスを使用してリストの個々の要素にアクセスできます。

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
$vbLabelText   $csharpLabel

リストは0ベースのインデックスであることに注意してください。そのため、最初の要素のインデックスは0です。上記の例では、要素が存在する場合、その要素は文字列に格納されます。

リスト要素の変更

リストの要素を変更するには、単に目的のインデックスの要素に新しい値を割り当てます。0ベースのインデックスであることを忘れないでください。

fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
$vbLabelText   $csharpLabel

今や、フルーツリストの2番目の要素は「バナナ」ではなく「ブルーベリー」です。

リストから要素の削除

リストから要素を削除するには、Remove メソッドを使用し、指定された要素の最初の出現を削除します。

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
$vbLabelText   $csharpLabel

または、RemoveAt メソッドを使用して、指定されたインデックスの要素を削除することもできます。

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
$vbLabelText   $csharpLabel

リストからすべての要素を削除するには、Clear メソッドを使用します。

fruits.Clear();
fruits.Clear();
fruits.Clear()
$vbLabelText   $csharpLabel

リストの要素の検索

リストに特定の要素が含まれているかどうかを確認するには、Contains() メソッドを使用します。

bool containsApple = fruits.Contains("apple");  // true
bool containsApple = fruits.Contains("apple");  // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
$vbLabelText   $csharpLabel

要素の最初の出現のインデックスを検索するには、IndexOf メソッドを使用します。

int appleIndex = fruits.IndexOf("apple");  // 0
int appleIndex = fruits.IndexOf("apple");  // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
$vbLabelText   $csharpLabel

要素が見つからない場合、IndexOf は -1 を返します。

リストをループ処理

リスト内の要素を繰り返し処理するには、foreach ループを使用できます。

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

また、リスト内の要素数を返す Count プロパティを使用した for ループを使用することもできます。

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
For i As Integer = 0 To fruits.Count - 1
	Console.WriteLine(fruits(i))
Next i
$vbLabelText   $csharpLabel

リストの並べ替え

リストを昇順に並べ替えるには、Sort メソッドを使用します。

List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()

' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
$vbLabelText   $csharpLabel

カスタム比較を使用して、Sort メソッドを使用してリストを降順に並べ替えることができます。

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))

' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
$vbLabelText   $csharpLabel

より複雑なソートには、カスタムIComparerクラスを実装するか、LINQ(Language Integrated Query)を使用できます。 二分探索アルゴリズムは、ソートされたリストに適用されます。

リストと LINQ を組み合わせて使用する

LINQ を使用すると、リストを含むコレクションに強力なクエリと変換を実行できます。 LINQ を使用するには、最初にSystem.Linq 名前空間をコードに含める必要があります。

using System.Linq;
using System.Linq;
Imports System.Linq
$vbLabelText   $csharpLabel

ここに、リスト上のLINQクエリのいくつかの例があります。

リストのフィルタリング

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
$vbLabelText   $csharpLabel

リスト内の要素をマッピング(変換)

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
$vbLabelText   $csharpLabel

リスト内の最小および最大値の検索

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
$vbLabelText   $csharpLabel

リストを配列に変換

リストを配列に変換するには、ToArray メソッドを使用できます。

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
$vbLabelText   $csharpLabel

IronPDF を使用してリスト データを PDF にエクスポートする

このセクションでは、IronPDF ライブラリを使用してリスト内のデータをPDFファイルにエクスポートする方法を示します。 これは、レポートやデータの印刷可能なバージョンを生成したいときに便利です。

まず、IronPDF NuGet パッケージをプロジェクトにダウンロードしてインストールします。

Install-Package IronPdf

次に、コードにIronPdf名前空間を含めます。

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

次に、文字列のListをHTMLテーブルに変換し、その後それをPDFファイルにエクスポートする簡単な関数を作成しましょう。

using System.Collections.Generic;
using System.Text;
using IronPdf;

void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using System.Text;
using IronPdf;

void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports System.Text
Imports IronPdf

Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
	' Create an HTML table from the list data
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("<table><tr><th>Item</th></tr>")

	For Each item As String In data
		htmlBuilder.Append($"<tr><td>{item}</td></tr>")
	Next item

	htmlBuilder.Append("</table>")

	' Convert the HTML table to a PDF using IronPDF
	Dim renderer = New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

	' Save the PDF to the specified file path
	pdf.SaveAs(pdfFilePath)
End Sub
$vbLabelText   $csharpLabel

この関数を使用するには、リストとPDFファイルのパスを指定して呼び出します。

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
$vbLabelText   $csharpLabel

これにより、IronPDF で HTML を PDF に変換 することによって、フルーツのリストを含むテーブルを持つ「Fruits.pdf」という名前の PDF ファイルが生成されます。 必要に応じて、HTMLテーブルにカスタムスタイリングを追加したり、PDFに追加コンテンツを追加したりすることで、ExportListToPdf関数を修正できます。

C# List (開発者用) 図 1 - HTML to PDF

結論

この初心者向けチュートリアルでは、C# リストの基本を説明し、IronPDF と統合してリスト データを PDF ファイルにエクスポートする方法を示しました。 IronPDF をプロジェクトに組み込むことで、C# プロジェクトからレポート、請求書、その他の印刷可能な文書を簡単に生成できます。

IronPDF は無料トライアルを提供しており、購入前にその機能をテストできます。

よくある質問

C#でリストを作成する方法は?

C#でリストを作成するには、System.Collections.Generic名前空間を含める必要があります。その後、山括弧内にデータ型を指定してリストを宣言できます。例:List numbers = new List();

C#リストに要素を追加するための方法は何ですか?

C#リストに要素を追加するには、個々の要素を追加する場合はAdd()メソッドを使用し、要素のコレクションを追加する場合はAddRange()を使用します。

C#リストをPDFファイルにエクスポートする方法は?

C#リストをPDFファイルにエクスポートするには、IronPDFライブラリを使用できます。リストデータをHTML表形式に変換し、その後IronPDFを使用してPDFとしてレンダリングします。

C#リストをソートする最良の方法は何ですか?

C#リストを昇順でソートするにはSort()メソッドを使用できます。降順でソートするには、カスタム比較デリゲートを使用してSort()を使用できます。

C#リストの要素にアクセスする方法は?

C#リストの要素は、配列と同様に、そのインデックスを使用してアクセスできます。リストはゼロベースのインデックス付けがされているので、リストの位置を使用して要素を取得できます。

C#リストから要素を削除するためのオプションは何ですか?

特定の要素を削除するにはRemove()メソッドを、特定のインデックスを削除するにはRemoveAt()、すべての要素を削除するにはClear()を使用できます。

C#リストでLINQをどのように活用できますか?

LINQは、C#リストで強力なクエリと変換を行うために使用できます。フィルタリング、マッピング、最小値や最大値を効率的に見つけるなどです。

C#でリストを配列に変換する方法は?

C#リストを配列に変換するには、リストの要素を含む新しい配列を作成するToArray()メソッドを使用できます。

C#リストの一般的な使用例は何ですか?

C#リストは、データの動的なコレクションを管理したり、LINQを使用して複雑なクエリを行ったり、IronPDFのようなライブラリを使用してレポートや文書を生成するのに一般的に使用されます。

C#リストの要素を反復する方法は?

C#リストの要素を反復するには、単純な反復にはforeachループを使用し、インデックスが必要な場合はforループを使用します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。