到目前为止我已经
了 @if (!(Model.CurrentVersion.LRC.List == Model.PrevVersion.LRC.List))
我想看看先前版本的列表是否与当前版本匹配,但是这只返回true(使用!)。这两个列表都是空的,但它没有返回false。
有没有更好的方法来查看列表是否匹配?为什么它总是回归真实?
谢谢!
答案 0 :(得分:1)
您需要检查列表的内容是否相同。有几种方法可以做到这一点。 如果项目的顺序很重要,那么试试吧 SequenceEqual
@if(!Model.CurrentVersion.LRC.List.SequenceEqual(Model.PrevVersion.LRC.List))
如果您不关心列表中项目的顺序,可以使用
!ints1.All(ints5.Contains)
现在,如果列表中的项目是相同的对象,您仍然会遇到问题。您可能想要检查这些项目的内容是否相等。为此,您需要实现IEqualityComparer<T>
。在SequenceEqual页面中有一个很好的例子来实现这种情况。