Jos*_*osh 3 c# linq linq-to-sql
我Item上课了
public class Item {
//...
public DateTime CreateDate { get; set; }
public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在一种方法中,我有List<Item> items.我如何比在列表中循环更简洁地查询日期差异的平均值?
double days = 0;
int total = 0;
foreach (var @t in results)
{
if (@t.EndDate != null)
{
total++;
TimeSpan ts = (TimeSpan)(@t.EndDate - @t.CreateDate);
days = ts.TotalDays;
}
}
double avg = days / total;
Run Code Online (Sandbox Code Playgroud)
var avg = results.Average( x => (x.EndDate - x.CreateDate).TotalDays );
Run Code Online (Sandbox Code Playgroud)
过滤掉空EndDate值并假设CreateDate不是类型的版本DateTime?:
var avg = results.Where( x=> x.EndDate.HasValue)
.Average( x => (x.EndDate.Value - x.CreateDate).TotalDays );
Run Code Online (Sandbox Code Playgroud)
有人要求以格式化格式化持续时间dd:HH:ss.要做到这一点,我们应该平均总毫秒(或秒),并执行以下操作:
var avg = results.Where(x=> x.EndDate.HasValue && x.CreateDate.HasValue)
.Average( x => (x.EndDate.Value - x.CreateDate.Value).TotalMilliseconds );
var fancyOutput = TimeSpan.FromMilliseconds( avg );
Response.Write( fancyOutput.ToString() );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |