我遇到了我的Linq查詢的問題。基本上,我從LinqPad獲得了下面的內容,它們按日期和文本字段(類型)進行分組,並給出結果。問題在於,我需要爲每個日期確定總價值,以及與總價值相比時「藍色」的百分比。Linq Group得到總體的百分比
var t = (from p in Orders where (p.Type == "Blue" || p.Metric == "Red" || p.Metric == "White")
&& p.OrderDate>= new DateTime(2014,8,26,0,0,0)
orderby p.OrderDate, p.Type
group p by new { p.OrderDate, p.Type} into gd
select new {OrderDate = gd.Key.OrderDate, Type= gd.Key.Type, Value = gd.Sum(x => x.Value)}).ToList().Dump();
所以,如果我有3行像下面的那些,我需要得到一個行回來:
- 2014年8月28日, 「藍」,30
- 2014-08- 28日, 「紅」,25
- 2014年8月28日, 「白」,95
結果我後:
- 2014年8月28日, 「藍」,0.2
的 「0.2」 是用於一個日期的 「藍色」 的條目的百分比。當然,如果有多個日期,我需要每日約1行:-)
這是在做我的頭,所以任何指針,將不勝感激。像往常一樣,我在谷歌和搜索首先,但經過幾次嘗試決定問。
謝謝!
謝謝,你當然很難保持沒有評論。 – Dominik 2014-09-26 03:16:49
@Dominik是的,它是LINQ醜陋,但仍然可能比使用循環更可怕的奇怪情況之一。 – Xenolightning 2014-09-28 08:01:52