c# 如何检查 SelectedListItem 的两个列表是否具有相同的值

c# how to check if two Lists of SelectedListItem have the same values

我正在为最基本的事情苦苦挣扎。我正在尝试比较两个 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 class

实现 IEqualityComparer<T> 接口

如果它是一个快速而肮脏的单次检查并且表的大小不是那么大,您也可以将其序列化并直接比较输出