0

次のクエリを使用して、メモリ内のデータテーブルから行をプルしています。

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の一部であったときに、結果行のインデックスを取得する必要があります。これについては何も見つからないようです。提案?

4

2 に答える 2

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
于 2013-01-15T21:24:01.460 に答える
1

これはトリックを行う必要があります

int index = exceldt.Rows.IndexOf(results);
于 2013-01-15T21:17:36.863 に答える