LINQ:获取值不为空的最后一条记录并除以该值

时间:2014-01-30 21:46:18

标签: c# .net linq datetime

这是我的表格中的相关信息

-------------------------
|   COL1   |     Id     |
-------------------------
|    20    | 25-01-2014 |
-------------------------

现在问题: 我正在努力使用LINQ语句,该语句应该获得列(COL1)的值不同于0.0(零)的最后一条记录。然后我需要找到Id列和今天之间的天数,然后将COL1中的值除以天数。

现在为了让事情更加有趣(对不起讽刺),我正处于这样的情况:COL1可能在同一天有多个值:

-------------------------
|   COL1   |     Id     |
-------------------------
|    20    | 25-01-2014 |
-------------------------
|    25    | 25-01-2014 |
-------------------------

在这种情况下,我必须得到当天这些值的总和,并将该结果除以从25-01-2014到今天的天数。

我希望有人能够提供帮助。

提前致谢!

1 个答案:

答案 0 :(得分:2)

你去了:

var data; // this should be wherever you get your data from.

var lastGroup = data.GroupBy(item => item.Id).OrderBy(group => group.Key).Last();
var date = lastGroup.Key;
var sum = lastGroup.Sum();
var result = sum / (DateTime.Today - date).TotalDays