检查列表是否与 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 页面中有一个很好的例子来实现这个案例。
到目前为止我有
@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 页面中有一个很好的例子来实现这个案例。