C#で2つのリストが等しいかどうかを比較する方法
C#では、LINQのExceptメソッドを使って2つのリストの差分を抽出することで、リスト同士が等しいかどうかを判断できます。まず、比較対象となる2つのリストを用意しましょう。
リスト1の作成
List<string> list1 = new List<string>();
list1.Add("A");
list1.Add("B");
list1.Add("C");
list1.Add("D");
リスト2の作成
List<string> list2 = new List<string>();
list2.Add("C");
list2.Add("D");
Exceptメソッドは、最初のリストから2番目のリストに含まれない要素だけを返します。したがって、この操作の結果として何らかの要素が返された場合、それは2つのリストが等しくないことを意味します。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo {
public static void Main() {
List<string> list1 = new List<string>();
list1.Add("P");
list1.Add("Q");
list1.Add("R");
Console.WriteLine("最初のリスト...");
foreach(string value in list1) {
Console.WriteLine(value);
}
Console.WriteLine("2番目のリスト...");
List<string> list2 = new List<string>();
list2.Add("P");
list2.Add("R");
foreach(string value in list2) {
Console.WriteLine(value);
}
Console.WriteLine("2つのリストの差分...");
IEnumerable<string> list3;
list3 = list1.Except(list2);
foreach(string value in list3) {
Console.WriteLine(value);
}
}
}
出力結果
最初のリスト... P Q R 2番目のリスト... P R 2つのリストの差分... Q
上記の出力では、リスト1にのみ存在する「Q」が差分として表示されています。つまり、Exceptの結果が空(要素数0)であれば両リストは等しく、要素が存在すれば等しくないと判断できます。
補足:SequenceEqualメソッドで直接等価性を判定する
要素の内容だけでなく順序まで含めて完全に一致しているかを確認したい場合は、LINQのSequenceEqualメソッドが便利です。真偽値(bool)で結果が得られるため、よりシンプルに記述できます。
bool isEqual = list1.SequenceEqual(list2); Console.WriteLine(isEqual ? "リストは等しい" : "リストは等しくない");
用途に応じて、差分を特定したい場合はExcept、単純に等しいかどうかを判定したい場合はSequenceEqualを使い分けるとよいでしょう。
-
Excelで2つの列を比較して違いを見つける7つの方法
Excelでデータを管理していると、「2つのリストの内容が一致しているか」「どこに違いがあるのか」を確認したい場面はよくあります。例えば、商品リストの照合や顧客名簿のチェックなど、Excelの機能や関数を使えば、2つの列を簡単に比較して差分を抽出できます。この記事では、Excelで2つの列を比較して違いを見つけるための方法を、具体例とともにわかりやすく解説します。 Excelで2つの列の違いを見つける7つの方法 ここでは、Excelで2つの列を比較して差分を検出する7つの方法を、ひとつずつ順番に紹介します。 まずは、以下のような簡単なサンプルを使って説明します。果物の名前が入力された2つのリ
-
Excelで2つの列やリストを比較する方法|初心者にもわかる4つの基本テクニック
Excelで作業をしていると、2つ以上の列の一致や相違を確認したい場面によく出くわします。列同士の比較自体は難しくありませんが、方法が多数あるため、どれを選べばよいか迷ってしまうこともあるでしょう。この記事では、Excelで列を照合・比較するためのさまざまなテクニックを、具体例とともにわかりやすく解説します。 Excelで2つの列またはリストを比較する4つの方法 ここでは、スーパーマーケットの2つのショールームの商品名が入力された2列のデータセットを用意しました。この2つのショールームのデータを比較していきます。 方法1:等号演算子(=)を使って2つの列を比較する まずは、等号(=)を使って