如何从列表中找到最低和最高时间?

时间:2013-09-03 09:39:43

标签: c# winforms datetime

我有一个以这种格式保存时间值的字符串列表:11:25:46.123,我希望能够从此列表中找到最高和最低时间值。我该怎么做?

我尝试过类似的东西,但我不确定它是否正确,我不知道下一步该做什么。

List<TimeSpan> time = StringList.Select(x => TimeSpan.ParseExact(x, "HH:mm:ss.fff", null)).ToList();

编辑: 我收到了错误:

Input string was not in a correct format.

4 个答案:

答案 0 :(得分:7)

  

我收到错误:   输入字符串的格式不正确。

您的时间跨度格式不正确。试试这个

var StringList = new[] { "21:25:46.123" };
List<TimeSpan> time = StringList
                      .Select(x => TimeSpan.ParseExact(x, @"hh\:mm\:ss\.fff", null))
                      .ToList();
var max = time.Max();
var min = time.Min();

答案 1 :(得分:4)

你试过了吗?

TimeSpan maxTimeSpan = time.Max();
TimeSpan minTimeSpan = time.Min();

答案 2 :(得分:4)

试试这个

TimeSpan _maxtime= time.Max(); // For max time
TimeSpan _mintime= time.Min();// For min time

另请参阅MSDN

答案 3 :(得分:2)

不使用ParseExact

尝试
List<TimeSpan> times = StringList
    .Select(x => TimeSpan.Parse(x))
    .OrderBy(ts => ts)
    .ToList();
TimeSpan shortest = times.First();
TimeSpan longest = times.Last();