Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较DateTime类型对象的最快方法_C#_Optimization - Fatal编程技术网

C# 比较DateTime类型对象的最快方法

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

这是我做的。这是找到我的DateTime集合中最新DateTime的最快方法吗

我想知道是否有一种方法可以让我在foreach中做什么,但即使有,我也看不出它怎么能比我准备好的更快

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)