如何访问LINQ结果

本文关键字:LINQ 结果 访问 何访问 | 更新日期: 2023-09-27 17:50:58

我是使用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

但情况似乎并非如此。

如何访问LINQ结果

f的类型不是具有您所选择的投影属性的单个值。

相反,f的类型是IEnumerable<T>,其中T是您新创建的对象(您可以在Visual Studio中通过将鼠标悬停在var上看到这一点)。如果你确定只有一个结果对象,你可以像这样在f上使用SingleOrDefault():

var obj = f.SingleOrDefault();

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

foreach(var obj in f)
{
    var prn = obj.PRN;
}