作成中のプログラムの 2 つのリストの値を比較したいと考えています。リスト 1 の最初の値をリスト 2 の最初の値と比較し、次にリスト 1 の 2 番目の値をリスト 2 の 2 番目の値と比較する、というようにします。
C#でこれを行うにはどうすればよいですか?
これには、 と呼ばれる特別な方法がありますSequenceEqual
。
IList<int> myList1 = new List<int>(...);
IList<int> myList2 = new List<int>(...);
if (myList1.SequenceEqual(list2)) {
...
}
Zip
メソッドを使用して、シーケンスのカスタム比較を行うことができます。たとえば、いずれかのペアが差 3 以内にないかどうかを確認するには、次のようにします。
IList<int> myList1 = new List<int>(...);
IList<int> myList2 = new List<int>(...);
if (myList1.Zip(list2, (a, b) => Math.Abs(a - b)).Any(diff => diff > 3)) {
...
}