Vb.net VB:如何比较两个对象的属性值是否相同?
我有一个名为统计信息的对象。在该对象内部还有6个对象。每个都包含具有值的属性 例如,Vb.net VB:如何比较两个对象的属性值是否相同?,vb.net,for-loop,foreach,compare,equals,Vb.net,For Loop,Foreach,Compare,Equals,我有一个名为统计信息的对象。在该对象内部还有6个对象。每个都包含具有值的属性 例如,Statistics(0)包含“年龄”字段、“性别”字段、“车辆”等。。。 统计数据(1),统计数据(2)等也是如此 我想做的是将统计数据(0)一直与统计数据(6)进行比较,找出其中任何一个是否与另一个相同 如果Statistics(0)中包含的所有字段的值与Statistics(1)中的字段的值相同,我想做点什么 如何将这些对象相互比较 我尝试过的 For Each Stat As ExportStatisti
Statistics(0)
包含“年龄”字段、“性别”字段、“车辆”等。。。
统计数据(1),统计数据(2)
等也是如此
我想做的是将统计数据(0)
一直与统计数据(6)
进行比较,找出其中任何一个是否与另一个相同
如果Statistics(0)
中包含的所有字段的值与Statistics(1)
中的字段的值相同,我想做点什么
如何将这些对象相互比较
我尝试过的
For Each Stat As ExportStatistics In Statistics
Insert_VehicleStats(Stat) 'Insert values into main Vehicle table
If Statistics.Length > 1 Then
Dim i = 0
Dim y = 0
Dim previousObject As ExportStatistics
For Each Stat2 In Statistics
If Stat2.Equals(previousObject) Then
Dim sadXml = "do something"
End If
previousObject = Stat2
Next
End if
您可以重写类中的Equals函数,也可以重载它,然后创建自己的比较代码。以下是一个示例(假设您的对象类型为VehicleStatisticsItem):
您正在比较的两个对象将不相等,即使它们的属性相等。您需要指定您正在比较它们的属性 改变
If vehicleStatistic.Equals(previousObject) Then
Dim sadXml = "do something"
End If
到
这样,您就可以比较它们的属性。是否要求有精确的对齐方式,即
left。车辆统计(0)
将与right.Vehiclestatics(0)
(而不是,例如,right.Vehicles atistics(2)
)匹配?如果这样做,您还可能希望实现IEquatable(Of T)
。
If vehicleStatistic.Equals(previousObject) Then
Dim sadXml = "do something"
End If
If vehicleStatistic.GetType().GetProperties.Equals(previousObject.GetType().GetProperties) Then
Dim sadXml = "do something"
End If