我是一名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)。
我应该创建一个Class来保存每个数据项,还是有更简单的方法?如果我这样做,我是否需要一种自定义方式来决定两个实例是否包含相同的数据?
比较两个数据集是否相等的最简单方法是什么?
答案 0 :(得分:1)
您可以使用Tuple(Of T1, T2, T3)
泛型类型,也可以自己创建类
无论哪种方式,您都需要为班级创建IEqualityComparer(Of T)
;然后,您可以检查set1.SequenceEqual(set2, New MyComparer())
。
如果您创建自己的课程,则可以覆盖Equals()
和GetHashCode()
,而不是创建IEqualityComparer
。
答案 1 :(得分:1)
就个人而言,我会创建一个小类来保存每个项目,然后使用List(Of ItemType)来跟踪列表。 至于比较两个相等的列表,请参见此处 Comparing two collections for equality irrespective of the order of items in them