我遇到了我的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