我正在为基本的事情而挣扎。我正在尝试比较SelectedListItem的两个列表。我想知道这两个列表的值是否相同。
让我们想象一下我们有
List<SelectedListItem> listA, listB
我已经尝试了很多方法,比如:
new HashSet<SelectListItem>( listA ).SetEquals( listB );
或
var firstNotSecond = listA .Except( listB ).ToList();
var secondNotFirst = listB .Except( listA ).ToList();
或
listA.Contains(listB[i])
甚至是简单的
listA==listB
我仍然得到错误的输出,但我100%确信这些值是相同的,因为一个列表是从第二个列表创建的。
有没有一种简单的方法来比较他们的物品?
非常感谢
编辑
上下文:我从一个数据库创建了一个listA,并将其放入另一个空数据库中。现在,我从第二个数据库中下载了所有数据作为listB,我正在尝试检查数据是否已更改
您必须比较值才能比较引用。这将不起作用,因此可以编写一个小助手方法来检查两个SelectedListItems是否具有相同的值,并检查两个列表是否具有相同项。
如果你想以一种漂亮的方式实现它,你可以为SelectedListItem类实现IEqualityComparer<T>
接口
如果它是一个快速而肮脏的单次检查,并且表的大小没有那么大,那么你也可以序列化它,并直接比较的输出