Row#没有位置

时间:2012-08-30 19:22:47

标签: vb.net

我有一个包含重复项的.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语句无法识别它。

1 个答案:

答案 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