使用Linq从数据表中获取行索引



我使用以下查询从内存中的数据表中拉出一行。

Dim results = _
   From myRow In exceldt.AsEnumerable() _
   Where myRow.Field(Of String)("Serial Number") = Row.Item("Serial Number") _
   Select myRow
resultrow = results.CopyToDataTable.Rows(0)

我需要得到结果的索引时,它是exceldt的一部分。我在这上面找不到任何东西。建议吗?

我不工作在VB.net所以原谅我的代码但你可以得到一个投影的索引沿着这行:

Dim result = exceldt.AsEnumerable() .Select (Function(item, index) _
  New With { .Index = index, .SerialNumber = item }).ToList 

我不能在VB中提供更多的东西,但是这个快速的例子确实可以作为控制台应用程序工作。您可以看到选择/投影如何捕获索引和项目。在过滤初始枚举之前,您需要合并类似的逻辑。

Dim names = {"Andy", "Tom", "Fred", "Sally"}
Dim results = names _
    .Select(Function(item, index) New With {.Index = index, .Name = item}) _
    .OrderBy(Function(item) item.Name)
For Each item In results
    Console.WriteLine("{0} - {1}", item.Index, item.Name)
Next
结果

0 - Andy
2 - Fred
3 - Sally
1 - Tom

应该可以了

int index = exceldt.Rows.IndexOf(results);

相关内容

  • 没有找到相关文章

最新更新