1

LINQ を初めて使用するので、このクエリの結果にアクセスできません。目標は、結果の値を他の場所で使用することです。

var orderFacts = new OrdersFactsController().getOrderFacts(base.ModuleId);
var f = (from x in orderFacts 
         where x.Language == lang 
         select new 
                { 
                  x.PRN, 
                  x.ProdCode, 
                  x.KeyCodes,  
                  x.JobNumber, 
                  x.OfferingCode, 
                  x.Currency, x.ID, 
                  x.OrderSourceCode 
                });

クエリは、デバッグ時に表示される結果を返していますが、結果の使用方法がわかりません。

私はそれが次のようなものと同じくらい簡単だと思った:

var prn = f.PRN

しかし、そうではないようです。

4

1 に答える 1

6

のタイプはf、選択した射影されたプロパティを持つ単一の値ではありません。

代わりに、 のタイプfは、新しく作成されたオブジェクトのIEnumerable<T>場所Tです (これは、Visual Studio でマウスをvarの上に置くことで確認できます)。SingleOrDefault()次のように使用できる結果オブジェクトが1つしかないことが確実な場合f:

var obj = f.SingleOrDefault();

f複数のオブジェクトを含めることができる場合は、次のforeachステートメントでそれらを反復処理できます。

foreach(var obj in f)
{
    var prn = obj.PRN;
}
于 2013-01-07T18:12:47.230 に答える