如果不使用一些可怕的循环/计数器类型解决方案,我甚至不确定如何做到这一点.这是问题所在:
我有两个日期,开始日期和结束日期,在指定的时间间隔内我需要采取一些行动.例如:对于2009年10月3日之间的每个日期,每隔三天至2009年3月26日,我需要在列表中创建一个条目.所以我的意见是:
DateTime StartDate = "3/10/2009";
DateTime EndDate = "3/26/2009";
int DayInterval = 3;
Run Code Online (Sandbox Code Playgroud)
我的输出将是一个具有以下日期的列表:
2009年3月13日3/16/2009 3/19/2009 3/22/2009 3/25/2009
那么我怎么会这样做呢?我想过使用一个for循环,它会在范围内的每一天之间迭代,使用一个单独的计数器,如下所示:
int count = 0;
for(int i = 0; i < n; i++)
{
count++;
if(count >= DayInterval)
{
//take action
count = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
但似乎可能有更好的方法?
这个问题在这里已经有了答案:
在返回IEnumerable时是否有理由不使用'yield return'?
关于这些的好处,这里有几个有用的问题yield return.例如,
我正在寻找关于何时不使用的想法yield return.例如,如果我预计需要返回一个集合中的所有项目,它没有看起来就像yield是有用的,对不对?
什么情况下使用yield会限制,不必要,让我陷入困境,或者应该避免?