2013-11-26 94 views
0

用silverlight/c#編程。統計列表中每月的數據行數

比方說,我有一個包含受理數的列表/拒絕每月銷售額在過去的6個月(實時更新):

List<data> merge = new List<data>(); 

public class data 
{ 
    public string month { get; set; } 
    public string event_action_cd { get; set; } 
    public string quote_id { get; set; }  
} 

,所以我的名單將是這個樣子:

(一月,接受,1

一月,接受,2

一月,下降,3

二月,接受,4 ...

我想返回一個彙總列表,其中包含該月份的月份名稱和接受的百分比。有沒有一種優雅的方式來做到這一點?最難的是弄清楚過去6個月的情況(因爲它們每個月都在變化),那麼我可能會爲每次接受/拒絕運行一個計數器循環。

+1

你對數據類有多少控制?你能否將'month'從一個字符串改爲一個'int'或一個'DateTime'? – AllenG

回答

0
(from d in merge 
group d by d.month into g 
select new 
    { 
     Month = g.Key, 
     Total = g.Count, 
     Accepted = g.Count(x => x.event_action_cd =="accept")*100/g.Count 
    }).ToList() 
+0

奇怪 - 是否有一個原因,我不能使用tolist()後查詢? –

+0

它似乎接受(這是百分比)大於100? –

+0

我更新它,計算Accepted,你需要除以g.Count,而不是其他的方式,所以它不應該大於100.你應該能夠做到.ToList() –