我有一个包含重复项的.CSV。当我填写我的dataTable时,我想过滤掉重复项并添加某些单元格。
我的专栏:
With table.Columns
.Add(currentRow(0).ToString) '0
.Add(currentRow(3).ToString) '3
.Add(currentRow(5).ToString) '5
.Add(currentRow(6).ToString) '6
.Add(currentRow(8).ToString) '8
End With
我的标题:
table.Rows.Add(table.Columns(0).ToString, table.Columns(1).ToString, table.Columns(2).ToString, table.Columns(3).ToString, table.Columns(4).ToString)
当我继续检查currentRows到我桌子上已经有什么时候我得到一个错误,上面写着“在位置没有排#”
只有在我的代码片段中定义了我的标题但格式不正确时,它才会起作用。
With table.Rows
.Add(currentRow(0).ToString) '0
.Add(currentRow(3).ToString) '3
.Add(currentRow(5).ToString) '5
.Add(currentRow(6).ToString) '6
.Add(currentRow(8).ToString) '8
End With
这是我的If语句,我将currentRow的元素与第一列和行进行比较。
If currentRow(0).ToString Is table.Rows(someVal).Item(0) Then
在测试中,我可以看到格式正确的标题但我的If语句无法识别它。
答案 0 :(得分:0)
Is
关键字确定两个对象引用是否引用同一对象,但不比较对象的值。请改用=
If currentRow(0).ToString = table.Rows(someVal).Item(0) Then
DataTable是否是筛选重复项的正确对象?考虑创建一个以适当方式表示数据的类。如果您覆盖类中的Equals
方法,则可以使用LINQ轻松完成不同的对象。
Dim list = New List(Of MyClass)
' Add objects
list.Add(New MyClass(...))
list.Add(New MyClass(...))
...
'Get unique objects
Dim unique = list.Distinct()
For Each obj As MyClass In unique
' process obj
Next