2016-05-30 11 views
1

私はそれがこのように、1つのだけ結果を返すだろうことを知っていますLINQの-クエリ得た場合:For Eachで1-Result-Linqを扱う?代わりに?

Dim result = From g In Foo.Bar 
    Where g.keyID = 1 
    Select g 

を...私はまだ値を取得するためにFor Eachループを使用しなければならないのか1-result-queriesで作業するために使用できるものは何ですか? (複数あった場合、それは例外だった場合)

For Each x In result 
    TextBox1.Text = x.field1 
    TextBox2.Text = x.field2 
    TextBox3.Text = x.field3 
Next 

答えて

3

あなたはEnumerable.First/Enumerable.FirstOrDefaultまたはEnumerable.Single/Enumerable.SingleOrDefaultを使用することができます。

Dim firstResult = result.FirstOrDefault() 
If firstResult IsNot Nothing Then 
    TextBox1.Text = firstResult.field1 
    TextBox2.Text = firstResult.field2 
    TextBox3.Text = firstResult.field3 
End If 
  • だから、それが可能だ場合は、1つ以上があることFirstを使用していますが欲しい最初
  • 使用Singleあなたが最初にしたいが、あった場合はバグだった場合は、複数の
  • OrDefaultのメソッドが見つからない場合、例外がスローされます
  • OrDefaultメソッドは、デフォルト値(参照型の場合はNothing)を返します。
+0

ありがとう、ティム。 – DougyDoug

関連する問題