2009-06-02 30 views
3

我想弄清楚正確的語法,使其工作。這是一個例子。你能糾正它/將它翻譯成linq語法嗎?有沒有辦法在Linq根據不同的條件應用不同的計算

 From p In products() 
     group p by p.Category into g 
     select new { Category = g.Key, 
        TotalUnitsInStock = if(g.key="b", g.Avg(p => p.UnitsInStock), 
              g.Sum(p => p.UnitsInStock)) 

產品在這個例子中將是一個數據表。謝謝。

回答

2

請嘗試以下

var query = from p In products() 
       group p by p.Category into g 
       select new { Category = g.Key, 
        TotalUnitsInStock = (g.key=="b") ? g.Avg(p => p.UnitsInStock) : 
             g.Sum(p => p.UnitsInStock)); 
3
from p in products() 
group p by p.Category into g 
select new 
{ 
    Category = g.Key, 
    TotalUnitsInStock = g.Key == "b" 
     ? g.Average(p => p.UnitsInStock) 
     : g.Sum(p => p.UnitsInStock) 
} 
相關問題