我应该如何比较两个列表中的每个元素值?
在我的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