我有一些DateTime值。如何从值中选择最低日期以及哪个数组包含该值。
DateTime file1date = DateTime.ParseExact(fileListfordiff[0].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime file2date = DateTime.ParseExact(fileListfordiff[1].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime file3date = DateTime.ParseExact(fileListfordiff[2].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime file4date = DateTime.ParseExact(fileListfordiff[3].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime file5date = DateTime.ParseExact(fileListfordiff[4].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime file6date = DateTime.ParseExact(fileListfordiff[5].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
答案 0 :(得分:1)
我建议您也使用数组作为文件日期。 这也使您可以在填充数组时获得最低值:
var filesDate = new DateTime[fileListfordiff.Length];
var lowestDate = DateTime.MaxValue;
var lowestDateIndex = -1;
for(int i=0; i < fileListfordiff.Length; i++)
{
filesDate[i] = DateTime.ParseExact(fileListfordiff[i].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
if(filesDate[i] < lowestDate)
{
lowestDate = filesDate[i];
lowestDateIndex = i;
}
}
答案 1 :(得分:0)
首先创建一个indexPath.section
数组。将值保存到数组,然后您可以使用LINQ获得最低日期。
NSIndexSet *section = [NSIndexSet indexSetWithIndex:indexPath.section];
[self.tableView reloadSections:section withRowAnimation:UITableViewRowAnimationNone];
或者考虑一个您不需要保存值的情况,只需找到最低的日期。
DateTime
答案 2 :(得分:0)
如果您愿意使用MoreLINQ
,请考虑以下方法:
var fileDate = new List<DateTime>();
for (int i = 0; i <= 5; i++)
{
fileDate.Add(DateTime.ParseExact(fileListfordiff[i].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture));
}
var arrayIndex = fileDate
.Select((value, index) => new {index, value})
.MinBy(z => z.value).index;
Select
调用允许您同时获取值和索引,MinBy
允许您获取具有最低值的条目。
答案 3 :(得分:-1)
您可以执行类似
的操作List<DateTime> fileDate = new List<DateTime>();
for(int i=0;i<=5;i++)
{
fileDate.Add(DateTime.ParseExact(fileListfordiff[i].Substring(22, 8), "yyyyMMdd", CultureInfo.InvariantCulture));
}
DateTime minVal = fileDate.Min();
int minIndex = fileDate.IndexOf(minVal);