比较通用列表?

时间:2014-04-21 15:20:35

标签: vb.net compare generic-list

我在vb.net工作。我有两个用户定义类的通用列表 - 让我们称这个班的学生。

我正在调用一个数据库,该数据库为我提供了一个数据集,我将其安排到一个通用的学生列表中。学生将拥有以下属性:姓名,姓氏,电话,地址等。

然后我发出一个外国网络API的调用,我将数据安排回另一个通用的学生列表 - 同一个班级。

现在我试图比较一对一,如果数据库方面与我在调用web api时得到的内容有任何差异。有没有一种简单的方法可以将这样的类的泛型列表与另一个对象进行比较?我无法确定项目的顺序,因此无法进行直接比较 - 但除了迭代通用列表并在其他通用列表中搜索匹配之外,我还有一种明显的方法。

让我们称呼他们...... DatabaseListAPIList

有这些可能性:

  1. 存在数据库但不存在API
  2. 存在于API但不存在数据库
  3. 存在两者但两者之间不匹配
  4. 我希望最终得到三个新列表,以便我采取适当的行动。现在,我可以解决这个问题的唯一方法是遍历列表,这似乎是个坏主意 - 必须有更好的方法。

1 个答案:

答案 0 :(得分:2)

有一个Enumarable.SequenceEqual method用于比较通用序列。您可能需要先对集合进行排序,然后需要为项目实现IEqualityComparer(Of T)