在VB.NET中选择数据结构并进行比较
我是一名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
了。