List ジェネリック クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > List ジェネリック クラスの意味・解説 

List ジェネリック クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

インデックス使用してアクセスできる、厳密に指定されオブジェクトリスト表しますリスト検索並べ替え、および操作のためのメソッド提供します

名前空間: System.Collections.Generic
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
Public Class List(Of T)
    Implements IList(Of T), ICollection(Of
 T), _
    IEnumerable(Of T), IList, ICollection, _
    IEnumerable
[SerializableAttribute] 
public class List<T> : IList<T>,
 ICollection<T>, 
    IEnumerable<T>, IList, ICollection, IEnumerable
[SerializableAttribute] 
generic<typename T>
public ref class List : IList<T>, ICollection<T>,
 
    IEnumerable<T>, IList, ICollection, IEnumerable
J# では、ジェネリックな型およびメソッド使用できますが、新規に宣言することはできません。
JScript では、ジェネリックな型およびメソッド使用できません。

型パラメータ

T

リスト内の要素の型。

解説解説

List クラスは、ArrayList クラスジェネリック等価です。このクラスは、必要に応じてサイズ動的に増加する配列使用して、IList ジェネリック インターフェイス実装ます。

List クラスは、等値比較演算子順序比較演算子両方使用します

List並べ替えられることは保証されていません。List並べ替える必要のある操作 (BinarySearch など) を実行する前にList並べ替える必要があります

このコレクション内の要素は、整数インデックス使用してアクセスできます。このコレクションインデックスは 0 から始まります

List は、null 参照 (Visual Basic では Nothing) を参照型に対して有効な値として受け取り要素重複許可します

パフォーマンスに関する考慮事項

List クラスまたは ArrayList クラスのどちらを使用するかを決定する場合両者機能類似していますが、List クラス通常パフォーマンス優れており、タイプ セーフであることも考慮してくださいList クラスの型 T参照型使用される場合2 つクラス動作は同じです。ただし、型 T値型使用される場合実装ボックス化実行検討する必要があります

T値型使用される場合コンパイラはその値型のために List クラス実装生成します。つまり、List オブジェクトリスト要素は、その要素使用できるまでボックス化する必要はありません。約 500リスト要素作成されると、ボックス化しないリスト要素保存されメモリは、そのクラス実装生成するために使用されメモリよりも大きくなります

T使用される値型が、IEquatable ジェネリック インターフェイス実装していることを確認します実装ていない場合Contains などのメソッドは、影響を受けるリスト要素ボックス化する Object.Equals(Object) メソッド呼び出す必要があります値型IComparable インターフェイス実装している場合ソース コード所有していれば、IComparable ジェネリック インターフェイス実装して BinarySearch メソッドSort メソッドリスト要素ボックス化ないようにします。ソース コード所有してない場合は、IComparer オブジェクトBinarySearch メソッドSort メソッド渡します

ArrayList クラス使用したり、厳密に指定されラッパーコレクション独自に記述したりする代わりにList クラスの型固有の実装使用することには利点あります。その理由は、独自の実装では、既に .NET Framework が行っている動作実行する必要があることです。また、共通言語ランタイムMSIL (Microsoft Intermediate Language) コードメタデータ共有できますが、独自の実装ではできないこと理由です。

使用例使用例

List ジェネリック クラスいくつかのプロパティおよびメソッド使用したコード例次に示します既定コンストラクタ使用して容量が 0 の文字列リスト作成しますCapacity プロパティ表示された後、Add メソッド使用して複数の項目を追加します。項目がリストされ、Capacity プロパティCount プロパティと共に表示されて、必要に応じて容量増加したことが示されます。

Contains メソッド使用してリストに項目が存在するかをテストしInsert メソッド使用してリスト中間新しい項目を挿入しますリスト内容が再表示されます。

既定Item プロパティ (C# ではインデクサ) を使用して項目を取得しRemove メソッド使用して以前追加され重複している項目の最初インスタンス削除します内容が再表示されます。Remove メソッドは、常に、見つかった最初インスタンス削除します

TrimExcess メソッド使用して項目数一致するように容量削減しますCapacity プロパティCount プロパティ表示されます。未使用容量全容量の 10% 未満であった場合リストサイズ変更されていません。

最後にClear メソッド使用してリストからすべての項目を削除しCapacity プロパティCount プロパティ表示されます。

Imports System
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New
 List(Of String)

        Console.WriteLine(vbLf & "Capacity: {0}",
 dinosaurs.Capacity)

        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Deinonychus")
        dinosaurs.Add("Compsognathus")

        Console.WriteLine()
        For Each dinosaur As
 String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & "Capacity: {0}",
 dinosaurs.Capacity)
        Console.WriteLine("Count: {0}", dinosaurs.Count)

        Console.WriteLine(vbLf & "Contains(""Deinonychus""):
 {0}", _
            dinosaurs.Contains("Deinonychus"))

        Console.WriteLine(vbLf & "Insert(2, ""Compsognathus"")")
        dinosaurs.Insert(2, "Compsognathus")

        Console.WriteLine()
        For Each dinosaur As
 String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & "dinosaurs(3): {0}",
 dinosaurs(3))

        Console.WriteLine(vbLf & "Remove(""Compsognathus"")")
        dinosaurs.Remove("Compsognathus")

        Console.WriteLine()
        For Each dinosaur As
 String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        dinosaurs.TrimExcess()
        Console.WriteLine(vbLf & "TrimExcess()")
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity)
        Console.WriteLine("Count: {0}", dinosaurs.Count)

        dinosaurs.Clear()
        Console.WriteLine(vbLf & "Clear()")
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity)
        Console.WriteLine("Count: {0}", dinosaurs.Count)
    End Sub
End Class

' This code example produces the following output:
'
'Capacity: 0
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Deinonychus
'Compsognathus
'
'Capacity: 8
'Count: 5
'
'Contains("Deinonychus"): True
'
'Insert(2, "Compsognathus")
'
'Tyrannosaurus
'Amargasaurus
'Compsognathus
'Mamenchisaurus
'Deinonychus
'Compsognathus
'
'dinosaurs(3): Mamenchisaurus
'
'Remove("Compsognathus")
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Deinonychus
'Compsognathus
'
'TrimExcess()
'Capacity: 5
'Count: 5
'
'Clear()
'Capacity: 5
'Count: 0
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new
 List<string>();

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in
 dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        Console.WriteLine("\nContains(\"Deinonychus\"): {0}"
,
            dinosaurs.Contains("Deinonychus"));

        Console.WriteLine("\nInsert(2, \"Compsognathus\")");
        dinosaurs.Insert(2, "Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in
 dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);

        Console.WriteLine("\nRemove(\"Compsognathus\")");
        dinosaurs.Remove("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in
 dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.TrimExcess();
        Console.WriteLine("\nTrimExcess()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        dinosaurs.Clear();
        Console.WriteLine("\nClear()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);
    }
}

/* This code example produces the following output:

Capacity: 0

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

Capacity: 8
Count: 5

Contains("Deinonychus"): True

Insert(2, "Compsognathus")

Tyrannosaurus
Amargasaurus
Compsognathus
Mamenchisaurus
Deinonychus
Compsognathus

dinosaurs[3]: Mamenchisaurus

Remove("Compsognathus")

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

TrimExcess()
Capacity: 5
Count: 5

Clear()
Capacity: 5
Count: 0
 */
using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity);

    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Deinonychus");
    dinosaurs->Add("Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs
 )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity);
    Console::WriteLine("Count: {0}", dinosaurs->Count);

    Console::WriteLine("\nContains(\"Deinonychus\"): {0}",
        dinosaurs->Contains("Deinonychus"));

    Console::WriteLine("\nInsert(2, \"Compsognathus\")");
    dinosaurs->Insert(2, "Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs
 )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);

    Console::WriteLine("\nRemove(\"Compsognathus\")");
    dinosaurs->Remove("Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs
 )
    {
        Console::WriteLine(dinosaur);
    }

    dinosaurs->TrimExcess();
    Console::WriteLine("\nTrimExcess()");
    Console::WriteLine("Capacity: {0}", dinosaurs->Capacity);
    Console::WriteLine("Count: {0}", dinosaurs->Count);

    dinosaurs->Clear();
    Console::WriteLine("\nClear()");
    Console::WriteLine("Capacity: {0}", dinosaurs->Capacity);
    Console::WriteLine("Count: {0}", dinosaurs->Count);
}

/* This code example produces the following output:

Capacity: 0

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

Capacity: 8
Count: 5

Contains("Deinonychus"): True

Insert(2, "Compsognathus")

Tyrannosaurus
Amargasaurus
Compsognathus
Mamenchisaurus
Deinonychus
Compsognathus

dinosaurs[3]: Mamenchisaurus

Remove("Compsognathus")

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

TrimExcess()
Capacity: 5
Count: 5

Clear()
Capacity: 5
Count: 0
 */
継承階層継承階層
System.Object
  System.Collections.Generic.List
スレッド セーフスレッド セーフ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「List ジェネリック クラス」の関連用語

List ジェネリック クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



List ジェネリック クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS