Equals メソッドでのコレクションの内容の比較
Equals メソッドで、コレクション、特に Dictionary と IList の内容を比較したいとします。 。これら 2 つの型を直接比較する組み込みメソッドはありませんが、Enumerable.SequenceEqual メソッドを利用して、それらの内容が等しいかどうかを判断できます。
Enumerable.SequenceEqual
このメソッドは 2 つのシーケンスを受け入れ、指定された IEqualityComparer を使用してそれらの要素を比較します。シーケンスに同じ数の要素が含まれており、対応する要素の各ペアが等しい場合、true を返します。
辞書とリストの比較
2 つの辞書と 2 つの IList を比較するには、それぞれのキーと値を同等とみなすことができます。 IList の場合、SequenceEqual を使用してその内容を直接比較できます。辞書の場合、キーと値のペアのリストに変換し、SequenceEqual を使用して同等性をチェックできます。
使用例
「」という名前の辞書があると仮定します。 dict1" と "list1" という名前のリストがあり、それらを別の辞書 "dict2" およびリストと比較したいとします。 "リスト2":
// Convert Dictionaries to lists of key-value pairs var dict1List = dict1.Select(x => new KeyValuePair<string, int>(x.Key, x.Value)).ToList(); var dict2List = dict2.Select(x => new KeyValuePair<string, int>(x.Key, x.Value)).ToList(); // Compare the lists of key-value pairs using SequenceEqual bool dictEqual = dict1List.SequenceEqual(dict2List); // Compare the ILists directly using SequenceEqual bool listEqual = list1.SequenceEqual(list2);
以上がC# で辞書と IList の内容を比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。