我应该如何在两个列表中每个元素的值进行比较? [英] How should I compare each element values in two lists?
本文介绍了我应该如何在两个列表中每个元素的值进行比较?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的单元测试方法,
我有两个列表。一个是在 expectedValueList 等为 actualvalueList
I am having two list. One is the expectedValueList and other is actualvalueList.
expectedValueList={a=1,b=2,c=3,d=4}
actualvalueList={d=4,b=2,c=3,a=1}
我做这个
CollectionAssert.AreEqual(expectedValueList.Select(x => x.a).ToList() ,actualvalueList.Select(x => x.a).ToList())
如何比较其余元素?
推荐答案
您可以使用 SequenceEqual 如果它们已经以直接
You can use SequenceEqual if they are already in order directly
expectedValueList.SequenceEqual(actualvalueList);
如果他们不是为了比你可以使用序列等于像
if they are not in order than you can apply ordering as well before using sequence equal like
expectedValueList.OrderBy(x => x).SequenceEqual(actualvalueList.OrderBy(y => y));
示例
Example
List<int> l1 = new List<int> { 1, 2, 3, 4 };
List<int> l2 = new List<int> { 3, 1, 2, 4 };
if (l1.OrderBy(x => x).SequenceEqual(l2.OrderBy(y => y)))
{
Console.WriteLine("List are equal"); // will write this
}
if (l1.SequenceEqual(l2))
{
Console.WriteLine("List are equal");
}
else
{
Console.WriteLine("List are not equal"); // will write this
}
这篇关于我应该如何在两个列表中每个元素的值进行比较?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文