我有一个包含以下字段的表:
public int S_ID
public DateTime S_Date
public string S_Month
public string S_Overtime
public string S_WorkingTime
我想要(Orderby S_Date)
、(GroupBy S_Month)
、(SUM S_Overtime)
、(SUM S_Workingtime)
然后我使用 Binding 将其显示在列表框中。
下面的代码有效,但它既不计算加类时间,也不计算工作时间
var manader = (from c in db.nys
orderby c.S_Date ascending
select c).GroupBy(g => g.S_Month).Select(x => x.FirstOrDefault());
listBox.ItemsSource = manader;
最佳答案
我不知道 S_WorkingTime
和 S_Overtime
中有哪些数据,但假设这是 int
的字符串表示形式:
var manader = from c in db.nys
group c by c.S_Month into g
select new {
Month = g.Key,
Overtimes = g.Sum(x => Int32.Parse(x.S_Overtime)),
WorkingTimes = g.Sum(x => Int32.Parse(x.S_WorkingTime))
};
顺便说一句,我认为按 S_Date
订购商品是没有意义的,因为您按 S_Month
对它们进行分组并使用聚合值。
关于c# - 总和和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901225/