[英]How can you eliminate variable declaration in LINQ query syntax foreach?
使用方法語法,我可以打印以管理所有$ 100的訂單
foreach (var order in orders.Where(o => o.Amount == 100))
Console.WriteLine("Order: {0} - Order Amount: {1}", order.OrderID, order.Amount);
但是要使用查詢語法做到這一點,我必須先創建一個變量,以便在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
。 在第一個示例中,查詢基本上只是由運行時轉換為(或多或少)相同的方法語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.