我不在 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