在Razor / C#中检查列表是否与另一个匹配?

时间:2017-04-28 09:31:14

标签: c# asp.net .net razor

到目前为止我已经

  @if (!(Model.CurrentVersion.LRC.List == Model.PrevVersion.LRC.List))

我想看看先前版本的列表是否与当前版本匹配,但是这只返回true(使用!)。这两个列表都是空的,但它没有返回false。

有没有更好的方法来查看列表是否匹配?为什么它总是回归真实?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要检查列表的内容是否相同。有几种方法可以做到这一点。 如果项目的顺序很重要,那么试试吧 SequenceEqual

@if(!Model.CurrentVersion.LRC.List.SequenceEqual(Model.PrevVersion.LRC.List))

如果您不关心列表中项目的顺序,可以使用

!ints1.All(ints5.Contains)

现在,如果列表中的项目是相同的对象,您仍然会遇到问题。您可能想要检查这些项目的内容是否相等。为此,您需要实现IEqualityComparer<T>。在SequenceEqual页面中有一个很好的例子来实现这种情况。