使用できますLinq-To-DataSet
:
Dim matchingRows As IEnumerable(Of DataRow) =
From row In table
Where row.Field(Of String)("error_case") = "condition"
1 つの列だけが必要な場合 (もちろん、1 つのステップでも機能します):
Dim errorMessages As IEnumerable(Of String) =
From row In matchingRows
Select row.Field(Of String)("error_message")
For Each error In errorMessages
Console.WriteLine(error)
Next
単一の行を使用するだけであると予想される場合は、First
またはSingle
(複数の行がある場合は例外をスローします):
Dim error As String = errorMessages.First()
First
シーケンスが空の場合は例外をスローするため、次を使用できますFirstOrDefault
。
Dim error As String = errorMessages.FirstOrDefault() ' is null/Nothing in case of an empty sequence
すべて 1 行で (Linq と の両方でDataTable.Select
ループを使用する必要があることに注意してください):
Dim ErrMessage As String = errorTable.AsEnumerable().
Where(Function(r) r.Field(Of String)("Error_Case") = TextCase.Text).
Select(Function(r) r.Field(Of String)("Error_Message")).
FirstOrDefault()