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>
接口
如果它是一个快速而肮脏的单次检查并且表的大小不是那么大,您也可以将其序列化并直接比较输出
我正在为最基本的事情苦苦挣扎。我正在尝试比较两个 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>
接口
如果它是一个快速而肮脏的单次检查并且表的大小不是那么大,您也可以将其序列化并直接比较输出