C# で 2つのリストを比較する
このチュートリアルでは、2つのリストを比較して C# の違いを見つける方法について説明します。
リストを比較して、C# の Linq メソッドとの違いを見つける
次のシナリオを考えてみましょう。list1
と list2
の 2つのリストがあり、list1
のどの要素が list2
に存在せず、list2
のどの要素が list1 に存在しないかを知りたいと考えています。
。これは、Linq の Except()
関数を使用して実行できます。Linq または統合言語クエリは、C# のデータ構造をクエリするために使用されます。Except()
関数は、他のリストに存在しない 1つのリストの要素のセットを返します。次のコード例は、C# の Linq との違いについて 2つのリストを比較する方法を示しています。
using System;
using System.Collections.Generic;
using System.Linq;
namespace compare_lists {
class Program {
static void Main(string[] args) {
List<int> list1 = new List<int> { 1, 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
List<int> firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();
Console.WriteLine("Present in List1 But not in List2");
foreach (var x in firstNotSecond) {
Console.WriteLine(x);
}
Console.WriteLine("Present in List2 But not in List1");
foreach (var y in secondNotFirst) {
Console.WriteLine(y);
}
}
}
}
出力:
Present in List1 But not in List2
1
2
Present in List2 But not in List1
5
6
上記のコードの違いについて、リスト list1
と list2
を比較しました。最初に list1
に存在する要素を保存しましたが、新しいリスト firstNotSecond
の list2
には保存しませんでした。次に、list2
に存在するが list1
には存在しない要素を新しいリスト secondNotFirst
に保存しました。最後に、firstNotSecond
リストと secondNotFirst
リストの両方の要素を出力しました。唯一の欠点は、一方のリストで、もう一方のリストに存在しない繰り返し値が 1 回しか出力されないことです。
C# の List.Contains()
関数でリストを比較して違いを見つける
List.Contains()
関数は、要素が C# のリストに存在するかどうかを判断するために使用されます。List.Contains(x)
関数は、要素 x
がリストに存在する場合は true を返し、要素 x
が存在しない場合は false を返します。Linq で List.Contains()
メソッドを使用して、一方のリストに存在し、もう一方のリストには存在しない要素を判別できます。次のコード例は、C# の List.Contains()
関数との違いについて 2つのリストを比較する方法を示しています。
using System;
using System.Collections.Generic;
using System.Linq;
namespace compare_lists {
class Program {
static void Main(string[] args) {
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
var firstNotSecond = list1.Where(i => !list2.Contains(i)).ToList();
var secondNotFirst = list2.Where(i => !list1.Contains(i)).ToList();
Console.WriteLine("Present in List1 But not in List2");
foreach (var x in firstNotSecond) {
Console.WriteLine(x);
}
Console.WriteLine("Present in List2 But not in List1");
foreach (var y in secondNotFirst) {
Console.WriteLine(y);
}
}
}
}
出力:
Present in List1 But not in List2
1
1
2
Present in List2 But not in List1
5
6
上記のコードの違いについて、リスト list1
と list2
を比較しました。最初に list1
に存在する要素を保存しましたが、新しいリスト firstNotSecond
の list2
には保存しませんでした。次に、list2
には存在するが list1
には存在しない要素を新しいリスト secondNotFirst
に保存しました。最後に、firstNotSecond
リストと secondNotFirst
リストの両方の要素を出力しました。ここでは、出力は繰り返し値と同じ回数繰り返されます。値の繰り返しを検討する場合は、この方法を前の方法よりも優先する必要があります。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn