4
例如,我有一些数据源(可能是数据库),我需要从中抽取上个月的所有记录。我正在使用LINQ。有两种可能的方式如何实现这一点:LINQ中DateTime比较的性能
第一:
var res = from rec in _records
where rec.RequestDateTime.Date.Year == date.Year &&
rec.RequestDateTime.Date.Month == date.Month
select rec;
二(使用直接日期比较):
var year = date.Year;
var month = date.Month;
var monthStart = new DateTime(year, month, 1);
var monthEnd = new DateTime(year, month, DateTime.DaysInMonth(year, month));
var res = from rec in _records
where rec.RequestDateTime.Date >= monthStart &&
rec.RequestDateTime.Date <= monthEnd
select rec;
听说第二代码适用于最LINQ快提供者,但无法找到任何证据或解释(或disproofs)。那么,为了更好的性能,为什么使用哪种方法更好?
你的分析能告诉你什么? –
@Rune FS,可悲的分析并不能解释为什么...... –
更正它只回答你的问题的第一部分。 –