0

我有 3 种方法应该返回相同的数据。数据是一个列表,MyObjectModel我想检查这三个列表是否包含相同的数据。我想在 json 中序列化 3 个列表中的每一个,并计算字符串的长度是否都相同。

有更好的方法吗?

谢谢。

4

3 回答 3

6

使用Enumerable.SequenceEqual

if(list1.SequenceEqual(list2) && list2.SequenceEqual(list3)) {
    ...
}
于 2012-10-23T03:47:00.200 回答
0

您可能希望使用 HashSet 来执行此操作。

首先,将第一个列表中的所有项目添加到 HashSet。

然后迭代第二个列表,询问 HashSet 是否包含该项目。

如果所有都包含在那里,那么它们包含相同的元素。

例子

var list1 = new string[] { "A", "B", "C" };
var list2 = new string[] { "B", "A", "C" };
var list3 = new string[] { "C", "B", "A" };

var hs = new HashSet<string>(list1);
if (list2.All(x => hs.Contains(x)) && list3.All(x => hs.Contains(x)))
{

}
于 2012-10-23T03:47:57.313 回答
0
var isEqual=List<type>.Equals(List1,List2)
var allEqual= isEqual && List<type>.Equals(List1,List3)
于 2012-10-23T04:00:01.403 回答