2009-04-29 10 views
2

私は、LINQのに非常に新しいですし、私は、LINQの式に以下の変換問題を抱えています:すべてのヘルプは感謝LINQのサブリストの問題

 Dim returnedInstructions As List(Of Integer) = New List(Of Integer) 
     For Each j As Job In response.Jobs 
      For Each i As Instruction In j.Instructions 
       returnedInstructions.Add(i.InstructionId) 
      Next 
     Next 

答えて

0

あなたはSelectManyをしたいです。

(これはコンパイルする場合、私は知らないし、今VBで、) ​​

Dim returnedInstructions = response.Jobs _ 
    .SelectMany(Function(j) j.Instructions _ 
    .Select(Function(i) i.InstructionID)) _ 
    .ToList() 
+0

ありがとうございます。私はSelectManyをもっと深く見ていきます。 – Owen

2

私はVBにあまり慣れていないので、これはC#構文と多少混同されているとお詫び申し上げます。

returnedInstructions = 
(from j in response.Jobs _ 
from i in j.Instructions _ 
select i.InstructionId).ToList(); 
+0

私は以前この正確な例を試してみましたが、それは IEnumberable > IEnumberableを返されません。 – Owen

+1

これは*正確に*あなたが試したものですか? from doubleはSelectMany(Davidの答えによる)への呼び出しに変換する必要があります。ToListはListとして返します。であり、IEnumerableではありません。

0

このような何か作業をする必要があります:

Dim returnedInstructions As New List(Of Integer) 
    Dim q = From j In response.Jobs, i In j.Instructions Select i.InstructionID 
    returnedInstructions.AddRange(q)