如何消除 LINQ 查询语法中的变量声明
本文关键字:变量 声明 语法 查询 何消 LINQ | 更新日期: 2023-09-27 18:17:23
使用方法语法我可以打印以控制台所有 100 美元的订单
foreach (var order in orders.Where(o => o.Amount == 100))
Console.WriteLine("Order: {0} - Order Amount: {1}", order.OrderID, order.Amount);
但是要使用查询语法执行此操作,我必须先创建一个 var 来存储结果,然后再进行 Console.WriteLine 循环:
var summary = from o in orders
where o.Amount == 100
select o;
foreach (var order in summary)
Console.WriteLine("Order: {0} - Order Amount: {1}", order.OrderID, order.Amount);
是否可以减少此查询语法以消除摘要声明?
您是否尝试过将查询括在括号中?
foreach (var order in (from o in orders
where o.Amount == 100
select o))
您还可以考虑在 List
上使用 ForEach
扩展(在此处记录(,如下所示:
(from o in orders
where o.Amount == 100
select o)
.ToList().ForEach(o => Console.WriteLine(...))
foreach (var order in (from o in orders
where o.Amount == 100
select o))
{
// ...
}
应该工作 - 查询将首先返回您的列表,然后由foreach
迭代。查询基本上只是由运行时转换为(或多或少(第一个示例中的相同方法语法。