C#のLinkedList.AddBefore()メソッドでノードを追加する方法
C#のLinkedList.AddBefore()メソッドとは
C#のLinkedList<T>クラスには、指定したノードの直前に新しいノードを追加するためのAddBefore()メソッドが用意されています。このメソッドを使うことで、リンクリスト内の任意の位置に柔軟に要素を挿入できます。
LinkedListの作成
まず、文字列型のノードを持つLinkedListを作成します。
string[] students = {"Henry", "David", "Tom"};
LinkedList<string> list = new LinkedList<string>(students);末尾にノードを追加する
AddLast()メソッドを使って、リストの末尾にノードを追加します。
// 末尾にノードを追加
var newNode = list.AddLast("Brad");AddBefore()で指定ノードの直前に挿入する
次に、AddBefore()メソッドを使って、先ほど追加したノード(Brad)の直前に新しいノードを挿入します。
list.AddBefore(newNode, "Emma");
これにより、「Emma」は「Brad」の直前に配置されます。
サンプルコード
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
string[] students = {"Henry", "David", "Tom"};
LinkedList<string> list = new LinkedList<string>(students);
foreach (var stu in list) {
Console.WriteLine(stu);
}
// 末尾にノードを追加
var newNode = list.AddLast("Brad");
// 追加したノードの直前に新しいノードを追加
list.AddBefore(newNode, "Emma");
Console.WriteLine("新しいノード追加後のLinkedList...");
foreach (var stu in list) {
Console.WriteLine(stu);
}
}
}実行結果
Henry David Tom 新しいノード追加後のLinkedList... Henry David Tom Emma Brad
まとめ
AddBefore()メソッドは、第1引数に既存のノード、第2引数に追加したい値を指定します。戻り値として新しく追加されたLinkedListNode<T>を受け取れるため、続けて別の位置への挿入を行う場合にも便利です。なお、指定したノードが現在のLinkedListに属していない場合はInvalidOperationExceptionがスローされる点に注意してください。
-
C#のLinkedList.AddFirstメソッドで先頭にノードを追加する方法
連結リスト(LinkedList)において、リストの先頭に新しいノードを追加したい場合は、AddFirst メソッドを使用します。このメソッドを使うことで、既存の要素をすべて後ろにずらすことなく、効率的に先頭へ要素を挿入できます。LinkedListの準備まずは、文字列型のLinkedListを作成してみましょう。配列をコンストラクタに渡すことで、初期要素を持つリストを簡単に生成できます。string[] students = {Jenifer, Angelina, Vera}; LinkedList<string> list = new LinkedList<string&
-
C#のOfType()メソッドの使い方:要素の型でコレクションをフィルタリングする方法
C#のOfType()メソッドとは C#のOfType()メソッドは、LINQ拡張メソッドの一つで、コレクション内の各要素の型に基づいてフィルタリングを行うための機能です。異なる型が混在するコレクションから、特定の型の要素だけを抽出したい場合に非常に便利です。 基本的な仕組み 例えば、文字列と整数が混在する以下のようなリストがあるとします。 list.Add(Katie); list.Add(100); list.Add(200); このリストからstring型の要素のみを抽出するには、次のようにOfType<string>()を使用します。 var myStr = from a