C#のLinkedListでRemoveメソッドを使ってノードを削除する方法
C#のLinkedList<T>クラスには、リスト内のノードを削除するためのRemove()メソッドが用意されています。このメソッドを使用すると、指定した値と一致する最初に見つかったノードをLinkedListから削除できます。
この記事では、Removeメソッドの基本的な使い方を、実際のコード例とともにわかりやすく解説します。
LinkedListの準備
まず、整数型の要素を持つLinkedListを作成しましょう。配列をコンストラクタに渡すことで、簡単に初期化できます。
int[] num = {2, 5, 7, 15};
LinkedList<int> list = new LinkedList<int>(num);Removeメソッドでノードを削除する
次に、要素「7」を持つノードを削除してみましょう。その場合は、以下のようにRemove()メソッドに削除したい値を引数として渡します。
list.Remove(7);
これにより、LinkedList内で最初に見つかった値「7」のノードが削除されます。
サンプルコード全体
ここまでの内容を踏まえて、ノードの追加から削除までの一連の流れを含む完全なコードを見てみましょう。
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
int[] num = {2, 5, 7, 15};
LinkedList<int> list = new LinkedList<int>(num);
// 初期状態のLinkedListを表示
foreach (var n in list) {
Console.WriteLine(n);
}
// 末尾に新しいノードを追加
var newNode = list.AddLast(25);
Console.WriteLine("新しいノード追加後のLinkedList...");
foreach (var n in list) {
Console.WriteLine(n);
}
// ノードを削除
list.Remove(7);
Console.WriteLine("ノード削除後のLinkedList...");
foreach (var n in list) {
Console.WriteLine(n);
}
}
}実行結果
2 5 7 15 新しいノード追加後のLinkedList... 2 5 7 15 25 ノード削除後のLinkedList... 2 5 15 25
ポイントまとめ
Remove(値)は、指定した値と一致する最初のノードのみを削除します。- 該当するノードが存在しない場合でも例外はスローされず、LinkedListは変更されません。
- 先頭や末尾のノードを削除したい場合は、パフォーマンス面で有利な
RemoveFirst()やRemoveLast()メソッドも活用できます。
LinkedListの要素削除は、このようにRemove()メソッド一行で簡単に行えます。条件に応じて適切な削除メソッドを選択し、効率的なコードを書きましょう。
-
C#のOfType()メソッドの使い方:要素の型でコレクションをフィルタリングする方法
C#のOfType()メソッドとは C#のOfType()メソッドは、LINQ拡張メソッドの一つで、コレクション内の各要素の型に基づいてフィルタリングを行うための機能です。異なる型が混在するコレクションから、特定の型の要素だけを抽出したい場合に非常に便利です。 基本的な仕組み 例えば、文字列と整数が混在する以下のようなリストがあるとします。 list.Add(Katie); list.Add(100); list.Add(200); このリストからstring型の要素のみを抽出するには、次のようにOfType<string>()を使用します。 var myStr = from a
-
C# LINQ Distinct()メソッドでリストから重複要素を削除する方法
C#のLINQで重複しない要素(一意の値)だけを取得したい場合は、Distinct()メソッドを使用します。このメソッドは、シーケンス内の重複する要素を取り除き、各要素を1度だけ返してくれます。 重複要素を含むリストの準備 まずは、重複した要素を含むリストを用意しましょう。 List<int> points = new List<int> { 5, 10, 5, 20, 30, 30, 40, 50, 60, 70 }; このリストには「5」と「30」がそれぞれ2回含まれています。 Distinct()メソッドで重複を除去する 重複を除いた要素を取得するには、次のように