我是使用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
但似乎并非如此。
答案 0 :(得分:6)
f
的类型不是您选择的投影属性的单个值。
而f
的类型是IEnumerable<T>
,其中T
是您新创建的对象(您可以通过将鼠标悬停在 var )。如果您确定只有一个结果对象,则可以SingleOrDefault()
使用f
,如下所示:
var obj = f.SingleOrDefault();
如果f
可以包含多个对象,则可以使用foreach
语句对其进行迭代:
foreach(var obj in f)
{
var prn = obj.PRN;
}