我有一个这样的数字列表:
20151114
20151115
20151116
我需要了解最新的一天。如果今天是2015/11/17,最新的数字应为:
20151116
我认为我需要将这些数字转换为日期,然后比较每个数字以获取最新日期,但我不知道如何做到这一点。 我必须指出数字列表是动态创建的 我接受其他建议,谢谢。
答案 0 :(得分:3)
如果您将List<string>
中的这些日期作为单个成员,则可以使用模式yyyyMMdd
将每个字符串元素解析为日期,然后按降序排序并选择第一个如下:
List<string> list = new List<string>
{
"20151114",
"20151115",
"20151116",
};
var latestDate = list.Select(d => DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture))
.OrderByDescending(d => d)
.FirstOrDefault();
这会让你回来:
latestDate = {16/11/2015 12:00:00 AM}
另外要添加,因为您选择存储字符串日期的格式支持自然排序顺序,您还可以执行以下操作:
var latestStringDate = list.OrderByDescending(r => r).FirstOrDefault();
但是这会给你一个字符串日期,而不是一个DateTime
对象。
答案 1 :(得分:1)
如果你有“yyyyMMdd”就更容易了。 转换为INT编号并选择更高的高度(bucle为),然后仅将一个数字转换为日期。 我认为这种方式更快。</ p>