【发布时间】:2016-03-21 13:52:09
【问题描述】:
我有一个 DateTimes 数组:
public DateTime GetNextGame()
{
DateTime[] dateTimes = new DateTime[]
{
new DateTime(2016, 4, 11, 7, 5, 0),
new DateTime(2016, 4, 12, 7, 5, 0),
new DateTime(2016, 4, 13, 7, 5, 0),
new DateTime(2016, 5, 30, 7, 5, 0),
new DateTime(2016, 5, 31, 7, 5, 0),
new DateTime(2016, 6, 1, 7, 5, 0),
new DateTime(2016, 6, 2, 7, 5, 0),
new DateTime(2016, 6, 14, 7, 5, 0),
new DateTime(2016, 6, 15, 7, 5, 0),
new DateTime(2016, 6, 16, 7, 5, 0),
new DateTime(2016, 8, 16, 7, 5, 0),
new DateTime(2016, 8, 17, 7, 5, 0),
new DateTime(2016, 9, 12, 7, 5, 0),
new DateTime(2016, 9, 13, 7, 5, 0),
new DateTime(2016, 9, 14, 7, 5, 0),
new DateTime(2016, 9, 19, 7, 5, 0),
new DateTime(2016, 9, 20, 7, 5, 0),
new DateTime(2016, 9, 21, 7, 5, 0),
new DateTime(2016, 9, 22, 7, 5, 0)
};
我的问题是.. 如果当前值不满足条件,我如何返回数组中的下一个值?我对此做了一些研究,发现了一个类似的问题,但它是在我不明白的 PHP 中。
所以我有一个循环遍历数组,然后是条件语句:
foreach(DateTime date in dateTimes)
{
if(date.TimeOfDay < DateTime.Today.TimeOfDay)
{
return //next value in array?
}
}
还试图返回日期 .ToShortDateString 以及 .ToShortTimeString 以供我查看。
我希望它看起来像这样。“下一场比赛是 3 月 3 日星期一晚上 7:05”
感谢任何帮助。
【问题讨论】:
-
您可以使用
for代替foreach。for(int i = 0; i < dateTimes.Length; i++) { date = dateTimes[i] ... } -
你可以保留
counter来获取下一个值,但是为什么你不使用for? -
对于这种问题,使用普通的for循环并手动索引数组可能更容易。然后只需使用
index + 1(并进行适当的异常处理)。 -
怎么知道下一个值会满足条件?你真的要退货吗?也许你应该使用
return dateTimes.First(...) -
是的,如果您希望确保以正确的顺序前进,我会使用普通的 for 循环。并且只需根据数组中的每个条目编写一个为您进行检查的方法。
标签: c# arrays asp.net-mvc loops