在VB.NET中选择数据结构并进行比较

0 投票
2 回答
562 浏览
提问于 2025-04-16 09:58

我是一名Python程序员,现在正在学习VB.NET,正在把一个应用程序从Python转换到VB.NET(3.5)。

在Python中,我有一个函数,它返回一个包含元组的列表,我在两个数据集上运行这个函数,结果像这样:

data1 = [(1,"a",2),(5,"c",7)...]
data2 = [(1,"a",2),(5,"x",7)...]

然后我想检查这两个数据集是否完全相同。

在Python中,我是这样检查它们是否相等的:

"Equal" if data1 == data2 else "Not Equal"

我想知道在VB.NET中,最简单的方式来组织这些数据。

看起来在VB.NET中,每个数据集的合适数据结构是List(of Something)。

我应该创建一个类来保存每个数据项,还是有更简单的方法?如果我创建了类,我需要一个特别的方法来判断两个实例是否包含相同的数据吗?

比较这两个数据集是否相等的最简单方法是什么?

2 个回答

1

我个人会创建一个小类来保存每个项目,然后用 List(Of ItemType) 来管理这些列表。至于如何比较两个列表是否相等,可以参考这里: 比较两个集合是否相等,不管里面项目的顺序

1

你可以使用 Tuple(Of T1, T2, T3) 这种通用类型,或者自己创建一个类。
无论哪种方式,你都需要为这个类创建一个 IEqualityComparer(Of T),这样你就可以用 set1.SequenceEqual(set2, New MyComparer()) 来检查两个集合是否相等。

如果你自己创建一个类,你可以重写 Equals()GetHashCode(),这样就不需要再创建一个 IEqualityComparer 了。

撰写回答