C# 比较DateTime类型对象的最快方法
这是我做的。这是找到我的DateTime集合中最新DateTime的最快方法吗 我想知道是否有一种方法可以让我在foreach中做什么,但即使有,我也看不出它怎么能比我准备好的更快C# 比较DateTime类型对象的最快方法,c#,optimization,C#,Optimization,这是我做的。这是找到我的DateTime集合中最新DateTime的最快方法吗 我想知道是否有一种方法可以让我在foreach中做什么,但即使有,我也看不出它怎么能比我准备好的更快 List<StateLog> stateLogs = db.StateLog.Where(p => p.ProductID == product.ProductID).ToList(); DateTime lastTimeStamp = DateTime.MinVal
List<StateLog> stateLogs = db.StateLog.Where(p => p.ProductID == product.ProductID).ToList();
DateTime lastTimeStamp = DateTime.MinValue;
foreach (var stateLog in stateLogs)
{
int result = DateTime.Compare(lastTimeStamp, stateLog.TimeStamp);
if (result < 0)
lastTimeStamp = stateLog.TimeStamp; // sæt fordi timestamp er senere
}
List stateLogs=db.StateLog.Where(p=>p.ProductID==product.ProductID.ToList();
DateTime lastTimeStamp=DateTime.MinValue;
foreach(stateLogs中的var stateLog)
{
int result=DateTime.Compare(lastTimeStamp、stateLog.TimeStamp);
如果(结果<0)
lastTimeStamp=stateLog.TimeStamp;//sæt fordi TimeStamp er senere
}
您可以使用重载运算符比较日期时间
s:
foreach (var stateLog in db.StateLog.Where(p => p.ProductID == product.ProductID))
{
if (lastTimeStamp < stateLog.TimeStamp)
lastTimeStamp = stateLog.TimeStamp; // sæt fordi timestamp er senere
}
foreach(db.stateLog.Where中的var stateLog(p=>p.ProductID==product.ProductID))
{
if(lastTimeStamp
假定stateLogs是非空集合
或者,更快的方法是:
stateLogs.Max(s=>s.TimeStamp)
但我不确定它是否会比手动循环更好。你不能让它更快,它本质上是一个O(n)算法。呸。错过了“优化”部分。别理我!永远不要低估JIT编译器。它在发布版本中生成完全相同的代码。首先测量。@Hans:抖动如何优化掉
Compare
调用?它将调用内联。就像它内联了接线员的呼叫。
stateLogs.Max(s=>s.TimeStamp)