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

时间:2010-05-28 00:08:16

标签: c# optimization

我做到了这一点。这是找到我的DateTimes集合的最新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
                }

3 个答案:

答案 0 :(得分:2)

您可以使用重载运算符比较DateTime

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
}

答案 1 :(得分:0)

stateLogs.OrderByDescending(s=>s.TimeStamp).First(s=>s.TimeStamp)

假设stateLogs是非空集合。

或者,更快的方法是:

stateLogs.Max(s=>s.TimeStamp)

但我不确定它会胜过手动循环。

答案 2 :(得分:0)

你不能让它更快,它本质上是一个O(n)算法。