C#で指定された値を含むLinkedListの最初のノードを検索する方法
LinkedList内で指定された値を含む最初のノードを検索するには、Findメソッドを使用します。このメソッドは、リストの先頭(First)から順に前方へ走査し、指定した値と一致する最初のノードをLinkedListNode<T>として返します。該当する値が存在しない場合はnullが返されます。
値の比較にはEqualityComparer<T>.Defaultが使用され、計算量はO(n)となります。
例1:文字列型のLinkedListを検索する
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<string> list = new LinkedList<string>();
list.AddLast("John");
list.AddLast("Tim");
list.AddLast("Kevin");
list.AddLast("Jacob");
list.AddLast("Emma");
list.AddLast("Ryan");
list.AddLast("Brad");
list.AddLast("Carl");
Console.WriteLine("LinkedListの要素...");
foreach(string str in list){
Console.WriteLine(str);
}
LinkedListNode<string> val = list.Find("Jacob");
Console.WriteLine("指定された値 = " + val.Value);
}
}実行結果
上記のコードを実行すると、次の出力が得られます。
LinkedListの要素... John Tim Kevin Jacob Emma Ryan Brad Carl 指定された値 = Jacob
例2:整数型のLinkedListを検索する
続いて、int型のLinkedListを検索する別の例を見てみましょう。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<int> list = new LinkedList<int>();
list.AddLast(100);
list.AddLast(200);
list.AddLast(300);
list.AddLast(400);
list.AddLast(500);
Console.WriteLine("LinkedListの要素...");
foreach(int i in list){
Console.WriteLine(i);
}
LinkedListNode<int> val = list.Find(300);
Console.WriteLine("指定された値 = " + val.Value);
}
}実行結果
上記のコードを実行すると、次の出力が得られます。
LinkedListの要素... 100 200 300 400 500 指定された値 = 300
まとめ
LinkedList<T>のFindメソッドを使えば、指定した値を含む最初のノードを簡単に取得できます。戻り値はLinkedListNode<T>型であるため、Valueプロパティで値を参照できるだけでなく、NextやPreviousプロパティを通じて前後のノードを操作することも可能です。
-
C#でLinkedList(連結リスト)の特定ノードの前に新しいノードを追加する方法
C#のLinkedList<T>クラスを使うと、連結リスト内の任意の位置にノードを挿入できます。本記事では、AddBefore()メソッドを使用して、特定のノードの直前に新しいノードを追加する手順を解説します。 手順1:LinkedListの宣言とノードの追加 まず、文字列配列をもとにLinkedListを作成し、初期ノードを設定します。 string[] students = {Tim,Jack,Henry,David,Tom}; LinkedList<string> list = new LinkedList<string>(students); 手
-
C#でリンクリスト(LinkedList)のノードを検索する方法
C#のLinkedList<T>クラスには、指定した値を持つノードを検索するためのFindメソッドが用意されています。本記事では、リンクリストから特定のノードを検索し、そのノードの直後に新しい要素を追加する手順を、サンプルコードと実行結果付きで解説します。 リンクリストの作成と要素の追加 まず、新しいリンクリストを作成します。 LinkedList<string> myList = new LinkedList<string>(); 次に、AddLastメソッドを使って、リンクリストの末尾に6つの要素を追加します。 // リンクリストに6つの要素を追加 my