我使用以下查询从内存中的数据表中提取行。
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的一部分时,我需要得到结果的索引。我似乎无法找到任何相关的东西。建议?
答案 0 :(得分:2)
我不能在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
答案 1 :(得分:1)
这应该可以解决问题
int index = exceldt.Rows.IndexOf(results);