在 Equals 方法中比较集合内容
在 Equals 方法中,您希望比较集合的内容,特别是字典和 IList 。虽然没有内置方法可以直接比较这两种类型,但您可以使用 Enumerable.SequenceEqual 方法来确定它们的内容是否相等。
Enumerable.SequenceEqual
此方法接受两个序列并使用指定的 IEqualityComparer 比较它们的元素。如果序列包含相同数量的元素并且每个相应的元素对相等,则返回 true。
比较字典和列表
比较两个字典和两个 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中文网其他相关文章!