数据流上的linq获取特定项的索引

时间:2013-07-15 08:13:58

标签: linq datatable datarow

我有数据表,第一行是标题 我需要根据标题

为此数据表指定特定列

我知道如果知道它的索引如何获取列。 问题是如何获得索引

Dim columnIndex as integer
Dim headerRow As DataRow = dt.Rows(0)
Dim colHeader As string ="abc"
columnIndex=???
Dim result = dt.Rows.Cast(Of DataRow)().[Select](Function(row) row(columnIndex)).Distinct().ToList()

由于

1 个答案:

答案 0 :(得分:0)

您可以使用dt.Rows.IndexOf

Dim ValueToSearch AS string = ...
columnIndex = dt.AsEnumerable().Where(Function(x) x.Field(of String)(colHeader) = ValueToSearch).Select(Function(x) dt.Rows.IndexOf(x)).SingleOrDefault()

如果where子句只返回一行或零行,则上述操作将起作用。如果不是这样,那么您可以关闭SingleOrDefault,然后遍历结果,即:

columnIndex = dt.AsEnumerable().Where(Function(x) x.Field(of String)(colHeader) = ValueToSearch).Select(Function(x) dt.Rows.IndexOf(x))
For Each i in columnIndex
    Console.WriteLine("Value found in row with index " + i.ToString())
Next

Giannis