Csharp/C#教程:我应该如何比较两个列表中的每个元素值?分享


我应该如何比较两个列表中的每个元素值?

在我的unit testing方法中,

我有两个清单。 一个是expectedValueList ,另一个是actualvalueList

expectedValueList={a=1,b=2,c=3,d=4} actualvalueList={d=4,b=2,c=3,a=1} 

我这样做只比较一个元素

 CollectionAssert.AreEqual(expectedValueList.Select(x => xa).ToList() ,actualvalueList.Select(x => xa).ToList()) 

如何比较剩余的元素?

如果它们已经直接排序,您可以使用SequenceEqual

 expectedValueList.SequenceEqual(actualvalueList); 

如果它们不是有序的,那么在使用序列相同之前也可以应用排序

 expectedValueList.OrderBy(x => x).SequenceEqual(actualvalueList.OrderBy(y => y)); 

 List l1 = new List { 1, 2, 3, 4 }; List l2 = new List { 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 } 

我期待它是一个List而不是你在评论中提到的键值对。 尝试这样的事情:

 Assert.AreEqual(actualvalueList.Count(), expectedValueList.Count()); for(int i=0;i 

要么

 CollectionAssert.AreEqual(expectedValueList, actualvalueList); 

编辑

如果您不想比较一个值,请从列表中删除:

上述就是C#学习教程:我应该如何比较两个列表中的每个元素值?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)

 actualvalueList.Remove(actualvalueList.Select(x => xd).FirstOrDefault()) 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/990553.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐