次のLINQの例では、グループが構成されている元の行からどのようにインデックス番号のリストを取得できますか?私はデータがどこから来るのかをユーザーに見せたいと思います。結果についてLINQクエリ結果のソース行を取得しますか?
Dim inputDt As New DataTable
inputDt.Columns.Add("Contractor")
inputDt.Columns.Add("Job_Type")
inputDt.Columns.Add("Cost")
inputDt.Rows.Add({"John Smith", "Roofing", "2408.68"})
inputDt.Rows.Add({"John Smith", "Electrical", "1123.08"})
inputDt.Rows.Add({"John Smith", "Framing", "900.99"})
inputDt.Rows.Add({"John Smith", "Electrical", "892.00"})
Dim results = From rows In inputDt Where rows!Contractor <> ""
Group rows By rows!Job_Type
Into cost_total = Sum(CDec(rows!Cost))
For Each r In results
' Show results.
'r.Job_Type
'r.cost_total
' Show line numbers of original rows... ?
Next
(JOB_TYPE =、 "電気" cost_total = 2015.08)、元のインデックス番号は1と3
おかげ
は、あなたが気に情報を格納するために匿名型を作成します。インディーズ(CSV、コレクション)の保存方法に応じて、その情報を保存します。 'rows!Cost'それよりむしろ' row.Field(Decimal)( "cost") 'を使い、古いスタイルのVB6関数/表記を取り除くことができます – Plutonix
@Plutonixわかりません。だから、どのように結果のアイテムのそれぞれの根底にある行に到達するのですか?例が分かるだろう。 – stacker