連結リスト
【英】linked list
連結リストとは、データ構造の一種であるリストの中で、自分の次、および、前の要素を示す情報(リンク情報)を持つことで、要素を連結(リンク)させたリストのことである。
リストは、データの要素を順番に並べて扱うデータ構造のことである。
次の要素へのリンクしか持たない連結リストのことを単方向(一方向)リスト、次と前への要素へのリンクを持つものを双方向リストと言うこともある。
連結リストは配列とは違い、リンクを辿らないと各々の要素にアクセスができず、また、リンクのためのメモリを余分に持つ必要があるなど不利な点がある。しかし、データの個数が前もってわからないような場合や、データの追加や削除が頻繁に発生するような場合などの扱いには適している。
LinkedList コンストラクタ ()
アセンブリ: System (system.dll 内)


LinkedList は、null 参照 (Visual Basic では Nothing) を参照型に対して有効な Value として受け取り、値の重複を許可します。
LinkedList が空の場合、First プロパティと Last プロパティには null 参照 (Visual Basic では Nothing) が格納されます。

String 型の LinkedList を作成および初期化し、いくつかのノードを追加し、その内容を表示するコード例を次に示します。
Imports System Imports System.Collections Imports System.Collections.Generic Public Class GenericCollection Public Shared Sub Main() ' Create and initialize a new LinkedList. Dim ll As New LinkedList(Of String)() ll.AddLast("red") ll.AddLast("orange") ll.AddLast("yellow") ll.AddLast("orange") ' Display the contents of the LinkedList. If ll.Count > 0 Then Console.WriteLine("The first item in the list is {0}.", ll.First.Value) Console.WriteLine("The last item in the list is {0}.", ll.Last.Value) Console.WriteLine("The LinkedList contains:") For Each s As String In ll Console.WriteLine(" {0}", s) Next s Else Console.WriteLine("The LinkedList is empty.") End If End Sub End Class 'This code produces the following output. ' 'The first item in the list is <null>. 'The last item in the list is orange. 'The LinkedList contains: ' red ' orange ' yellow ' orange
using System; using System.Collections; using System.Collections.Generic; public class GenericCollection { public static void Main() { // Create and initialize a new LinkedList. LinkedList<String> ll = new LinkedList<String>(); ll.AddLast( "red" ); ll.AddLast( "orange" ); ll.AddLast( "yellow" ); ll.AddLast( "orange" ); // Display the contents of the LinkedList. if ( ll.Count > 0 ) { Console.WriteLine( "The item in the list is {0}.", ll.First.Value ); Console.WriteLine( "The item in the list is {0}.", ll.Last.Value ); Console.WriteLine( "The LinkedList contains:" ); foreach ( String s in ll ) Console.WriteLine( " {0}", s); } else { Console.WriteLine("The LinkedList is empty."); } } } /* This code produces the following output. The first item in the list is red. The last item in the list is orange. The LinkedList contains: red orange yellow orange */
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Generic; void main() { // Create and initialize a new LinkedList. LinkedList< String^ > ^ ll = gcnew LinkedList< String^ >; ll->AddLast( L"red" ); ll->AddLast( L"orange" ); ll->AddLast( L"yellow" ); ll->AddLast( L"orange" ); // Display the contents of the LinkedList. if ( ll->Count > 0 ) { Console::WriteLine( L"The first item in the list is {0}.", ll->First->Value ); Console::WriteLine( L"The last item in the list is {0}.", ll->Last->Value ); Console::WriteLine( L"The LinkedList contains:" ); for each (String^ s in ll) { Console::WriteLine( L" {0}", s ); } } else { Console::WriteLine( L"The LinkedList is empty." ); } } /* This code produces the following output. The first item in the list is red. The last item in the list is orange. The LinkedList contains: red orange yellow orange */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


LinkedList コンストラクタ (ジェネリック IEnumerable)
アセンブリ: System (system.dll 内)

Public Sub New ( _ collection As IEnumerable(Of T) _ )
Dim collection As IEnumerable(Of T) Dim instance As New LinkedList(Of T)(collection)
public LinkedList ( IEnumerable<T> collection )
public: LinkedList ( IEnumerable<T>^ collection )
public LinkedList ( IEnumerable<T> collection )
public function LinkedList ( collection : IEnumerable<T> )

例外の種類 | 条件 |
---|---|
ArgumentNullException | collection が null 参照 (Visual Basic では Nothing) です。 |

LinkedList は、null 参照 (Visual Basic では Nothing) を参照型に対して有効な Value として受け取り、値の重複を許可します。
collection に要素がない場合、新しい LinkedList は空で、First プロパティと Last プロパティには null 参照 (Visual Basic では Nothing) が格納されます。
このコンストラクタは O(n) 操作です。ここで、n は collection 内の要素数です。

LinkedList(ジェネリック IEnumerable) コンストラクタのコード例および出力を次に示します。このコード例では、文字列の配列を作成し、その文字列の配列をコンストラクタに渡すことによって、LinkedList を作成し、データを読み込みます。
このコード例および出力は、LinkedList クラスのトピックで取り上げている例の一部分です。
Dim words() As String = _ { "the", "fox", "jumped", "over", "the", "dog" } Dim sentence As New LinkedList(Of String)(words) Display(sentence) Console.WriteLine("sentence.Contains(""jumped"") = {0}", _ sentence.Contains("jumped")) <br /><span space="preserve">...</span><br />'the fox jumped over the dog 'sentence.Contains("jumped") = True
string[] words = {"the", "fox", "jumped", "over", "the", "dog"}; LinkedList<string> sentence = new LinkedList<string>(words); Display(sentence); Console.WriteLine("sentence.Contains(\"jumped\") = {0}", sentence.Contains("jumped")); <br /><span space="preserve">...</span><br />//the fox jumped over the dog //sentence.Contains("jumped") = True
array<String^>^ words = {"the", "fox", "jumped", "over", "the", "dog"}; LinkedList<String^>^ sentence = gcnew LinkedList<String^>((IEnumerable<String^>^) words); Display(sentence); Console::WriteLine("sentence->Contains(\"jumped\") = {0}", sentence->Contains("jumped")); <br /><span space="preserve">...</span><br />//the fox jumped over the dog //sentence->Contains("jumped") = True

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


LinkedList コンストラクタ

名前 | 説明 |
---|---|
LinkedList () | LinkedList クラスの新しい空のインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
LinkedList (ジェネリック IEnumerable) | 指定した IEnumerable からコピーした要素を格納し、コピーされる要素の数を格納できるだけの容量を備えた、LinkedList クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
LinkedList (SerializationInfo, StreamingContext) | 指定した SerializationInfo と StreamingContext を使用して、シリアル化可能な LinkedList クラスの新しいインスタンスを初期化します。 |

LinkedList コンストラクタ (SerializationInfo, StreamingContext)
アセンブリ: System (system.dll 内)

Dim info As SerializationInfo Dim context As StreamingContext Dim instance As New LinkedList(Of T)(info, context)

LinkedList は、null 参照 (Visual Basic では Nothing) を参照型に対して有効な Value として受け取り、値の重複を許可します。
LinkedList が空の場合、First プロパティと Last プロパティには null 参照 (Visual Basic では Nothing) が格納されます。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


LinkedList ジェネリック クラス
アセンブリ: System (system.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(False)> _ Public Class LinkedList(Of T) Implements ICollection(Of T), IEnumerable(Of T), _ ICollection, IEnumerable, ISerializable, IDeserializationCallback
[SerializableAttribute] [ComVisibleAttribute(false)] public class LinkedList<T> : ICollection<T>, IEnumerable<T>, ICollection, IEnumerable, ISerializable, IDeserializationCallback
[SerializableAttribute] [ComVisibleAttribute(false)] generic<typename T> public ref class LinkedList : ICollection<T>, IEnumerable<T>, ICollection, IEnumerable, ISerializable, IDeserializationCallback

LinkedList は、汎用のリンク リストです。これは、.NET Framework の他のコレクション クラスと同様に、列挙子をサポートし、ICollection インターフェイスを実装しています。
LinkedList は、LinkedListNode 型の個別のノードを持つ真のリンク リストであるため、挿入および削除は O(1) 操作になります。参照型を格納しているリストは、ノードとその値が同時に作成される場合、より効率的に実行されます。基になるノードが公開されているため、GC ヒープ上の割り当てを行わない O(1) 操作として、ノードを削除し、それらを同じリストまたは別のリストに再挿入できます。リストには内部カウントも維持されるため、Count プロパティの取得は O(1) 操作です。リストがシングル スレッドから使用される場合は、このカウントの一貫性が保たれます。
LinkedList クラスでは、リストを一貫性のない状態にするチェーン、分割、循環参照などの機能はサポートしていません。この設計により、リストの整合性を維持でき、シングル スレッドでの操作では、リストの一貫性が保たれます。LinkedList でマルチスレッドがサポートされているのは、マルチスレッドの読み取り操作の場合だけです。それ以外のマルチスレッド操作の場合は、独自の同期処理を提供する必要があります。
![]() |
---|
常に、特定の状況でより効率的に実行されるリンク リストや、追加機能のためにプログラミングの安全性を犠牲にするリンク リストが作成される可能性があります。 |
LinkedList の各ノードは、LinkedListNode 型です。LinkedList は二重にリンクされているため、各ノードは、前方の Next ノードと後方の Previous ノードを指しています。ノードにはリストへのリンクがあるため、そのリストに対して無効な操作 (実際には別のリストに存在するノードを削除しようとするなど) を行っても、リストは矛盾した状態にはなりません。
LinkedList は、null 参照 (Visual Basic では Nothing) を参照型に対して有効な Value として受け取り、値の重複を許可します。
LinkedList が空の場合、First プロパティと Last プロパティには null 参照 (Visual Basic では Nothing) が格納されます。

LinkedList クラスが備える多数の機能を次の例で示します。このコード例では、文字列の配列を作成し、その文字列の配列を LinkedList(ジェネリック IEnumerable) コンストラクタに渡すことによって、文字列の LinkedList を作成し、データを読み込みます。
また、LinkedList クラスのプロパティおよびメソッドを使用して結果のリンク リストを操作し、操作の結果を表示します。
Imports System Imports System.Text Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim words() As String = _ { "the", "fox", "jumped", "over", "the", "dog" } Dim sentence As New LinkedList(Of String)(words) Display(sentence) Console.WriteLine("sentence.Contains(""jumped"") = {0}", _ sentence.Contains("jumped")) ' Add the word "today" to the beginning of the linked list. ' Remove the new node, and add it to the end of the list. sentence.AddFirst("today") Display(sentence) Dim mark1 As LinkedListNode(Of String) = sentence.First sentence.RemoveFirst() sentence.AddLast(mark1) Display(sentence) sentence.RemoveLast() sentence.AddLast("yesterday") Display(sentence) mark1 = sentence.Last sentence.RemoveLast() sentence.AddFirst(mark1) Display(sentence) sentence.RemoveFirst() Dim current As LinkedListNode(Of String) = _ sentence.FindLast("the") DisplayNode(current) sentence.AddAfter(current, "old") sentence.AddAfter(current, "lazy") DisplayNode(current) current = sentence.Find("fox") DisplayNode(current) sentence.AddBefore(current, "quick") sentence.AddBefore(current, "brown") DisplayNode(current) ' Keep a reference to the current node, "fox", and to the ' previous node in the list. Use the Find method to locate ' the node containing the value "dog". Show the position. mark1 = current Dim mark2 As LinkedListNode(Of String) = current.Previous current = sentence.Find("dog") DisplayNode(current) ' The AddBefore method throws an InvalidOperationException ' if you try to add a node that already belongs to a list. Try sentence.AddBefore(current, mark1) Catch ex As InvalidOperationException Console.WriteLine("Exception message: {0}", ex.Message) End Try ' Remove the node referred to by mark1, and add it before ' the node referred to by current. Show the sentence, ' highlighting the position of the node referred to by ' current. sentence.Remove(mark1) sentence.AddBefore(current, mark1) DisplayNode(current) ' Remove the node referred to by current. If you try to show ' its position now, the DisplayNode method prints a message. ' Add the node after the node referred to by mark2, and ' display the sentence, highlighting current. sentence.Remove(current) DisplayNode(current) sentence.AddAfter(mark2, current) DisplayNode(current) ' The Remove method finds and removes the first node that ' that has the specified value. sentence.Remove("old") Display(sentence) ' When the linked list is cast to ICollection(Of String), ' the Add method adds a node to the end of the list. sentence.RemoveLast() Dim icoll As ICollection(Of String) = sentence icoll.Add("rhinoceros") Display(sentence) ' Create an array, specifying a size one less than the size ' of the linked list, because Visual Basic allocates one ' more element than you specify. Console.WriteLine(vbLf & "Copy the list to an array.") Dim sArray(sentence.Count - 1) As String sentence.CopyTo(sArray, 0) For Each s As String In sArray Console.WriteLine(s) Next ' Release all the nodes. sentence.Clear() End Sub Private Shared Sub Display(ByVal words As LinkedList(Of String)) For Each word As String In words Console.Write(word & " ") Next Console.WriteLine() End Sub Private Shared Sub DisplayNode(ByVal node As LinkedListNode(Of String)) If node.List Is Nothing Then Console.WriteLine("Node ""{0}"" is not in a list.", node.Value) Return End If Dim result As New StringBuilder ("(" & node.Value & ")") Dim nodeP As LinkedListNode(Of String) = node.Previous While nodeP IsNot Nothing result.Insert(0, nodeP.Value & " ") nodeP = nodeP.Previous End While node = node.Next While node IsNot Nothing result.Append(" " & node.Value) node = node.Next End While Console.WriteLine(result) End Sub End Class 'This code example produces the following output: ' 'the fox jumped over the dog 'sentence.Contains("jumped") = True 'today the fox jumped over the dog 'the fox jumped over the dog today 'the fox jumped over the dog yesterday 'yesterday the fox jumped over the dog 'the fox jumped over (the) dog 'the fox jumped over (the) lazy old dog 'the (fox) jumped over the lazy old dog 'the quick brown (fox) jumped over the lazy old dog 'the quick brown fox jumped over the lazy old (dog) 'Exception message: The LinkedList node belongs a LinkedList. 'the quick brown jumped over the lazy old fox (dog) 'Node "dog" is not in a list. 'the quick brown (dog) jumped over the lazy old fox 'the quick brown dog jumped over the lazy fox 'the quick brown dog jumped over the lazy rhinoceros ' 'Copy the list to an array. 'the 'quick 'brown 'dog 'jumped 'over 'the 'lazy 'rhinoceros
using System; using System.Text; using System.Collections.Generic; public class Example { public static void Main() { string[] words = {"the", "fox", "jumped", "over", "the", "dog"}; LinkedList<string> sentence = new LinkedList<string>(words); Display(sentence); Console.WriteLine("sentence.Contains(\"jumped\") = {0}", sentence.Contains("jumped")); // Add the word "today" to the beginning of the linked list. // Remove the new node, and add it to the end of the list. sentence.AddFirst("today"); Display(sentence); LinkedListNode<string> mark1 = sentence.First; sentence.RemoveFirst(); sentence.AddLast(mark1); Display(sentence); sentence.RemoveLast(); sentence.AddLast("yesterday"); Display(sentence); mark1 = sentence.Last; sentence.RemoveLast(); sentence.AddFirst(mark1); Display(sentence); sentence.RemoveFirst(); LinkedListNode<string> current = sentence.FindLast("the"); DisplayNode(current); sentence.AddAfter(current, "old"); sentence.AddAfter(current, "lazy"); DisplayNode(current); current = sentence.Find("fox"); DisplayNode(current); sentence.AddBefore(current, "quick"); sentence.AddBefore(current, "brown"); DisplayNode(current); // Keep a reference to the current node, "fox", and to the // previous node in the list. Use the Find method to locate // the node containing the value "dog". Show the position. mark1 = current; LinkedListNode<string> mark2 = current.Previous; current = sentence.Find("dog"); DisplayNode(current); // The AddBefore method throws an InvalidOperationException // if you try to add a node that already belongs to a list. try { sentence.AddBefore(current, mark1); } catch(InvalidOperationException ex) { Console.WriteLine("Exception message: {0}", ex.Message); } // Remove the node referred to by mark1, and add it before // the node referred to by current. Show the sentence, // highlighting the position of the node referred to by // current. sentence.Remove(mark1); sentence.AddBefore(current, mark1); DisplayNode(current); // Remove the node referred to by current. If you try to show // its position now, the DisplayNode method prints a message. // Add the node after the node referred to by mark2, and // display the sentence, highlighting current. sentence.Remove(current); DisplayNode(current); sentence.AddAfter(mark2, current); DisplayNode(current); // The Remove method finds and removes the first node that // that has the specified value. sentence.Remove("old"); Display(sentence); // When the linked list is cast to ICollection(Of String), // the Add method adds a node to the end of the list. sentence.RemoveLast(); ICollection<string> icoll = sentence; icoll.Add("rhinoceros"); Display(sentence); // Create an array with the same number of elements as the // linked list. Console.WriteLine("\nCopy the list to an array."); string[] sArray = new string[sentence.Count]; sentence.CopyTo(sArray, 0); foreach( string s in sArray ) { Console.WriteLine(s); } // Release all the nodes. sentence.Clear(); } private static void Display(LinkedList<string> words) { foreach( string word in words ) { Console.Write(word + " "); } Console.WriteLine(); } private static void DisplayNode(LinkedListNode<string> node) { if (node.List==null) { Console.WriteLine("Node \"{0}\" is not in a list.", node.Value); return; } StringBuilder result = new StringBuilder("(" + node.Value + ")"); LinkedListNode<string> nodeP = node.Previous; while (nodeP != null) { result.Insert(0, nodeP.Value + " "); nodeP = nodeP.Previous; } node = node.Next; while (node != null) { result.Append(" " + node.Value); node = node.Next; } Console.WriteLine(result); } } //This code example produces the following output: // //the fox jumped over the dog //sentence.Contains("jumped") = True //today the fox jumped over the dog //the fox jumped over the dog today //the fox jumped over the dog yesterday //yesterday the fox jumped over the dog //the fox jumped over (the) dog //the fox jumped over (the) lazy old dog //the (fox) jumped over the lazy old dog //the quick brown (fox) jumped over the lazy old dog //the quick brown fox jumped over the lazy old (dog) //Exception message: The LinkedList node belongs a LinkedList. //the quick brown jumped over the lazy old fox (dog) //Node "dog" is not in a list. //the quick brown (dog) jumped over the lazy old fox //the quick brown dog jumped over the lazy fox //the quick brown dog jumped over the lazy rhinoceros // //Copy the list to an array. //the //quick //brown //dog //jumped //over //the //lazy //rhinoceros
#using <System.dll> using namespace System; using namespace System::Text; using namespace System::Collections::Generic; void Display(LinkedList<String^>^ words) { for each( String^ word in words ) { Console::Write(word + " "); } Console::WriteLine(); }; void DisplayNode(LinkedListNode<String^>^ node) { if (node->List == nullptr) { Console::WriteLine("Node \"{0}\" is not in a list.", node->Value); return; } StringBuilder^ result = gcnew StringBuilder("(" + node->Value + ")"); LinkedListNode<String^>^ nodeP = node->Previous; while (nodeP != nullptr) { result->Insert(0, nodeP->Value + " "); nodeP = nodeP->Previous; } node = node->Next; while (node != nullptr) { result->Append(" " + node->Value); node = node->Next; } Console::WriteLine(result); }; void main() { array<String^>^ words = {"the", "fox", "jumped", "over", "the", "dog"}; LinkedList<String^>^ sentence = gcnew LinkedList<String^>((IEnumerable<String^>^) words); Display(sentence); Console::WriteLine("sentence->Contains(\"jumped\") = {0}", sentence->Contains("jumped")); // Add the word "today" to the beginning of the linked list. // Remove the new node, and add it to the end of the list. sentence->AddFirst("today"); Display(sentence); LinkedListNode<String^>^ mark1 = sentence->First; sentence->RemoveFirst(); sentence->AddLast(mark1); Display(sentence); sentence->RemoveLast(); sentence->AddLast("yesterday"); Display(sentence); mark1 = sentence->Last; sentence->RemoveLast(); sentence->AddFirst(mark1); Display(sentence); sentence->RemoveFirst(); LinkedListNode<String^>^ current = sentence->FindLast("the"); DisplayNode(current); sentence->AddAfter(current, "old"); sentence->AddAfter(current, "lazy"); DisplayNode(current); current = sentence->Find("fox"); DisplayNode(current); sentence->AddBefore(current, "quick"); sentence->AddBefore(current, "brown"); DisplayNode(current); // Keep a reference to the current node, "fox", and to the // previous node in the list. Use the Find method to locate // the node containing the value "dog". Show the position. mark1 = current; LinkedListNode<String^>^ mark2 = current->Previous; current = sentence->Find("dog"); DisplayNode(current); // The AddBefore method throws an InvalidOperationException // if you try to add a node that already belongs to a list. try { sentence->AddBefore(current, mark1); } catch(InvalidOperationException^ ex) { Console::WriteLine("Exception message: {0}", ex->Message); } // Remove the node referred to by mark1, and add it before // the node referred to by current. Show the sentence, // highlighting the position of the node referred to by // current. sentence->Remove(mark1); sentence->AddBefore(current, mark1); DisplayNode(current); // Remove the node referred to by current. If you try to show // its position now, the DisplayNode method prints a message. // Add the node after the node referred to by mark2, and // display the sentence, highlighting current. sentence->Remove(current); DisplayNode(current); sentence->AddAfter(mark2, current); DisplayNode(current); // The Remove method finds and removes the first node that // that has the specified value. sentence->Remove("old"); Display(sentence); // When the linked list is cast to ICollection(Of String), // the Add method adds a node to the end of the list. sentence->RemoveLast(); ICollection<String^>^ icoll = sentence; icoll->Add("rhinoceros"); Display(sentence); // Create an array with the same number of elements as the // linked list. Console::WriteLine("\nCopy the list to an array."); array<String^>^ sArray = gcnew array<String^>(sentence->Count); sentence->CopyTo(sArray, 0); for each( String^ s in sArray ) { Console::WriteLine(s); } // Release all the nodes. sentence->Clear(); } //This code example produces the following output: // //the fox jumped over the dog //sentence->Contains("jumped") = True //today the fox jumped over the dog //the fox jumped over the dog today //the fox jumped over the dog yesterday //yesterday the fox jumped over the dog //the fox jumped over (the) dog //the fox jumped over (the) lazy old dog //the (fox) jumped over the lazy old dog //the quick brown (fox) jumped over the lazy old dog //the quick brown fox jumped over the lazy old (dog) //Exception message: The LinkedList node belongs a LinkedList. //the quick brown jumped over the lazy old fox (dog) //Node "dog" is not in a list. //the quick brown (dog) jumped over the lazy old fox //the quick brown dog jumped over the lazy fox //the quick brown dog jumped over the lazy rhinoceros // //Copy the list to an array. //the //quick //brown //dog //jumped //over //the //lazy //rhinoceros

System.Collections.Generic.LinkedList

この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。すべてのインスタンス メンバがスレッド セーフになるかどうかは保証されていません。
コレクションが変更されない限り、LinkedList では、複数の読み込み操作が同時に発生しても問題ありません。ただし、コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。まれに書き込みアクセスによって列挙処理で競合が発生する場合、列挙処理が完了するまでコレクションをロックする必要があります。コレクションに対し複数のスレッドがアクセスして読み取りや書き込みを行うことができるようにするには、独自に同期化を実装する必要があります。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


LinkedList プロパティ
LinkedList メソッド

名前 | 説明 | |
---|---|---|
![]() | AddAfter | オーバーロードされます。 LinkedList 内の既存のノードの後に新しいノードまたは値を追加します。 |
![]() | AddBefore | オーバーロードされます。 LinkedList 内の既存のノードの前に新しいノードまたは値を追加します。 |
![]() | AddFirst | オーバーロードされます。 LinkedList の先頭に新しいノードまたは値を追加します。 |
![]() | AddLast | オーバーロードされます。 LinkedList の末尾に新しいノードまたは値を追加します。 |
![]() | Clear | LinkedList からすべてのノードを削除します。 |
![]() | Contains | ある値が LinkedList 内に存在するかどうかを判断します。 |
![]() | CopyTo | LinkedList 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | Find | 指定した値を含む最初のノードを検索します。 |
![]() | FindLast | 指定した値を含む最後のノードを検索します。 |
![]() | GetEnumerator | LinkedList を反復処理する列挙子を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetObjectData | System.Runtime.Serialization.ISerializable インターフェイスを実装し、LinkedList インスタンスをシリアル化するために必要なデータを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | OnDeserialization | System.Runtime.Serialization.ISerializable インターフェイスを実装し、逆シリアル化が完了したときに逆シリアル化イベントを発生させます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | オーバーロードされます。 最初に出現するノードまたは値を LinkedList から削除します。 |
![]() | RemoveFirst | LinkedList の先頭にあるノードを削除します。 |
![]() | RemoveLast | LinkedList の末尾にあるノードを削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Collections.Generic.ICollection<T>.Add | ICollection の末尾にアイテムを追加します。 |
![]() | System.Collections.Generic.IEnumerable<T>.GetEnumerator | コレクションを反復処理する列挙子を返します。 |
![]() | System.Collections.ICollection.CopyTo | ICollection の要素を Array にコピーします。Array の特定のインデックスからコピーが開始されます。 |
![]() | System.Collections.IEnumerable.GetEnumerator | コレクションとしてリンク リストを反復処理する列挙子を返します。 |

LinkedList メンバ
LinkedList ジェネリック型で公開されるメンバを以下の表に示します。




名前 | 説明 | |
---|---|---|
![]() | AddAfter | オーバーロードされます。 LinkedList 内の既存のノードの後に新しいノードまたは値を追加します。 |
![]() | AddBefore | オーバーロードされます。 LinkedList 内の既存のノードの前に新しいノードまたは値を追加します。 |
![]() | AddFirst | オーバーロードされます。 LinkedList の先頭に新しいノードまたは値を追加します。 |
![]() | AddLast | オーバーロードされます。 LinkedList の末尾に新しいノードまたは値を追加します。 |
![]() | Clear | LinkedList からすべてのノードを削除します。 |
![]() | Contains | ある値が LinkedList 内に存在するかどうかを判断します。 |
![]() | CopyTo | LinkedList 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | Find | 指定した値を含む最初のノードを検索します。 |
![]() | FindLast | 指定した値を含む最後のノードを検索します。 |
![]() | GetEnumerator | LinkedList を反復処理する列挙子を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetObjectData | System.Runtime.Serialization.ISerializable インターフェイスを実装し、LinkedList インスタンスをシリアル化するために必要なデータを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | OnDeserialization | System.Runtime.Serialization.ISerializable インターフェイスを実装し、逆シリアル化が完了したときに逆シリアル化イベントを発生させます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | オーバーロードされます。 最初に出現するノードまたは値を LinkedList から削除します。 |
![]() | RemoveFirst | LinkedList の先頭にあるノードを削除します。 |
![]() | RemoveLast | LinkedList の末尾にあるノードを削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Collections.Generic.ICollection<T>.Add | ICollection の末尾にアイテムを追加します。 |
![]() | System.Collections.Generic.IEnumerable<T>.GetEnumerator | コレクションを反復処理する列挙子を返します。 |
![]() | System.Collections.ICollection.CopyTo | ICollection の要素を Array にコピーします。Array の特定のインデックスからコピーが開始されます。 |
![]() | System.Collections.IEnumerable.GetEnumerator | コレクションとしてリンク リストを反復処理する列挙子を返します。 |
![]() | System.Collections.ICollection.SyncRoot | ICollection へのアクセスを同期するために使用できるオブジェクトを取得します。 |

「linked list」の例文・使い方・用例・文例
- linked listのページへのリンク