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()使用f

var obj = f.SingleOrDefault();

如果可以包含多个对象,您可以使用语句f遍历它们:foreach

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