0

我有一个以这种格式保存时间值的字符串列表: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

4 回答 4

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();
于 2013-09-03T09:50:17.977 回答
4

你有没有尝试过:

TimeSpan maxTimeSpan = time.Max();
TimeSpan minTimeSpan = time.Min();
于 2013-09-03T09:41:17.823 回答
4

试试这个

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

也看看MSDN

于 2013-09-03T09:42:50.383 回答
2

尝试不使用 ParseExact

List<TimeSpan> times = StringList
    .Select(x => TimeSpan.Parse(x))
    .OrderBy(ts => ts)
    .ToList();
TimeSpan shortest = times.First();
TimeSpan longest = times.Last();
于 2013-09-03T09:49:29.353 回答