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

Checking to see if a list matches another in Razor / C#?

到目前为止我有

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

我想看看以前版本的列表是否与当前版本匹配,但这只是 returns 正确(带有 !)。这两个列表都是空的,但没有返回 false。

是否有更好的方法来查看列表是否匹配?为什么它总是返回 true?

谢谢!

您需要检查列表的内容是否相等。有几种方法可以这样做。 如果项目的顺序很重要,请尝试 SequenceEqual

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

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

!ints1.All(ints5.Contains)

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