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

C# 如何从列表中找到最低和最高时间?,c#,winforms,datetime,C#,Winforms,Datetime,我有一个字符串列表,其中包含以下格式的时间值:11:25:46.123,我希望能够从该列表中找到最高和最低时间值。我怎么做 我试过这样的方法,但我不确定它是否正确,我不知道下一步该怎么做 List<TimeSpan> time = StringList.Select(x => TimeSpan.ParseExact(x, "HH:mm:ss.fff", null)).ToList(); 您是否尝试过: TimeSpan maxTimeSpan = time.Max(); Ti

我有一个字符串列表,其中包含以下格式的时间值:11:25:46.123,我希望能够从该列表中找到最高和最低时间值。我怎么做

我试过这样的方法,但我不确定它是否正确,我不知道下一步该怎么做

List<TimeSpan> time = StringList.Select(x => TimeSpan.ParseExact(x, "HH:mm:ss.fff", null)).ToList();
您是否尝试过:

TimeSpan maxTimeSpan = time.Max();
TimeSpan minTimeSpan = time.Min();
试试这个

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

还可以查看不使用ParseExact进行尝试

List<TimeSpan> times = StringList
    .Select(x => TimeSpan.Parse(x))
    .OrderBy(ts => ts)
    .ToList();
TimeSpan shortest = times.First();
TimeSpan longest = times.Last();
我得到一个错误: 输入字符串的格式不正确

您的timespan格式不正确。试试这个

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();

@musefan只是为了确保始终易于理解,命名变量有意义应该比注释更充分。你的问题是什么?如何获得最大/最小值?或者如何解析字符串列表?因为这就是你的错误所在。我建议编辑您的问题并选择其中一个,而不是我的问题是关于最小/最大值,但现在我发现我在实践中有错误!或者只是TimeSpan.Parsexya,但TimeSpan.Parsex应该完成这项工作。您甚至可以使用=>删除一个lambda匿名函数,因为您实际上将参数列表从箭头x之前转发到命名方法,而不做任何更改。我想说的是你的第2行可以写。选择TimeSpan.Parse@musefan试试看。这正是我想要的。工作完美!!谢谢D@musefan为什么是这种格式..检查一下这个@musefan,它是在.NET4.0VisualStudio2010中引入的,不同于DateTime的格式字符串。特别是,它们不允许使用裸冒号,并且不需要区分HH和HH。请注意,如果列表对于不可为空的类型为空,则Linq方法.Max和.Min将抛出。
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();