C#のLinkedListでContains()メソッドを使って要素の存在を確認する方法
C#のLinkedList<T>クラスには、リスト内に特定の要素が存在するかどうかを確認するためのContains()メソッドが用意されています。この記事では、Contains()メソッドの基本的な使い方をサンプルコードとともに解説します。
LinkedListの準備
まず、次のように整数型の配列からLinkedListを作成します。
int[] num = {1, 3, 7, 15};
LinkedList<int> list = new LinkedList<int>(num);Contains()メソッドとは
Contains()メソッドは、引数に指定した値がリスト内に存在するかどうかを判定し、結果をbool型(true / false)で返します。要素が見つかればtrue、見つからなければfalseを返します。
例えば、リストに「3」というノードが含まれているかどうかを確認するには、次のように記述します。
list.Contains(3)
この場合、「3」はリスト内に存在するため、戻り値はTrueになります。
サンプルコード
以下は、LinkedListの作成、ノードの追加、そしてContains()メソッドによる要素の存在確認を行う完全なサンプルコードです。
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
int[] num = {1, 3, 7, 15};
LinkedList<int> list = new LinkedList<int>(num);
// リストの内容を表示
foreach (var n in list) {
Console.WriteLine(n);
}
// 末尾にノードを追加
var newNode = list.AddLast(20);
// 追加したノードの後に新しいノードを挿入
list.AddAfter(newNode, 30);
Console.WriteLine("LinkedList after adding new nodes...");
foreach (var n in list) {
Console.WriteLine(n);
}
// 要素「3」がリストに含まれているか確認
Console.WriteLine("Is number 3 (node) in the list?: " + list.Contains(3));
}
}実行結果
1 3 7 15 LinkedList after adding new nodes... 1 3 7 15 20 30 Is number 3 (node) in the list?: True
ポイントまとめ
- Contains()メソッドは、LinkedList内に指定した値が存在するかをO(n)の計算量で線形探索します。
- 戻り値はbool型で、要素が存在すればtrue、存在しなければfalseです。
- AddLast()やAddAfter()などと組み合わせることで、動的に変化するリストに対しても柔軟に要素の有無をチェックできます。
-
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()メソッドで重複を除去する 重複を除いた要素を取得するには、次のように
-
Pythonでリストに重複要素が含まれているかを判定する方法
数値のリストが与えられたとき、そのリストに重複した要素が含まれているかどうかを確認する必要があります。例えば、リストが [1,5,6,2,1,3] の場合、同じ「1」が2つ存在するため結果は True になります。一方、リストが [1,2,3,4] の場合は重複が存在しないため、結果は False となります。解決のアプローチこの問題は、Pythonの set(集合)データ構造の性質を利用することで簡単に解決できます。set は重複しない一意な値のみを保持するという特徴を持っています。一方、リストは重複した値を含むことが可能です。そこで、リストを set に変換すると、重複要素が存在する場合に