我应该如何在两个列表中每个元素的值进行比较? [英] How should I compare each element values in two lists?

查看:150
本文介绍了我应该如何在两个列表中每个元素的值进行比较?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的单元测试方法,

我有两个列表。一个是在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆