我有这样的简单数据表
| 1 | 2 | 3 |
|------|------|------|
| 1966 | 6544 | 1967 |
| 9560 | 3339 | 4968 |
| 0 | 9400 | 1765 |
| 0 | 5479 | 6701 |
Run Code Online (Sandbox Code Playgroud)
例如,我想检查 1966 列是否已经存在于“1”列中,如果存在则获取行索引我执行这样的代码
Dim search() As DataRow = table.Select(" '" & i & "' = '" & value & "' ")
'where i is a integer from 1 to 3 and value is a biginteger
If search.Count > 0 Then
'get row index
Else
Console.WriteLine("not found")
End If
Run Code Online (Sandbox Code Playgroud)
使用您现有的循环,只需找到表中的行:
Dim ndx As Int32
Dim rows = dtSample.Select("Id = 42")
If rows.Count > 0 Then
ndx = dtSample.Rows.IndexOf(rows(0))
End If
Return ndx
Run Code Online (Sandbox Code Playgroud)
使用扩展方法,你可以浓缩它:
Dim ndx = dtSample.AsEnumerable().
Where(Function(q) q.Field(Of Int32)("Id") = 42).
Select(Function(z) dtSample.Rows.IndexOf(z)).
ToArray()
Run Code Online (Sandbox Code Playgroud)
ndx 在这种情况下将是一个数组,当没有匹配时将是空的。
| 归档时间: |
|
| 查看次数: |
30978 次 |
| 最近记录: |