C# 在给定的月份里,有什么方法可以迭代几年?

C# 在给定的月份里,有什么方法可以迭代几年?,c#,foreach,iteration,C#,Foreach,Iteration,为了迭代这些年,并根据我上面的月数访问每年的数字,我目前正在做: var months = 36; 像这样的 foreach(var year in new List<int>(){ 1, 2, 3}) { } 像这样的 foreach(var year in new List<int>(){ 1, 2, 3}) { } 完全一样,是的。明亮的谢谢,伙计+1,如果月值为37,OP需要4年,那么Enumerable.Range1,int Math.Ceilingmon

为了迭代这些年,并根据我上面的月数访问每年的数字,我目前正在做:

var months = 36;
像这样的

foreach(var year in new List<int>(){ 1, 2, 3})
{
}
像这样的

foreach(var year in new List<int>(){ 1, 2, 3})
{
}

完全一样,是的。明亮的谢谢,伙计+1,如果月值为37,OP需要4年,那么Enumerable.Range1,int Math.Ceilingmonth/12d@Habib-谢谢。正确的观点。我现在没有危险,但为了更具防御性,把它包括在内是值得的。@Habib:没错,在这个计算中需要考虑一些逻辑因素。取决于OP想要什么样的行为。完全一样,是的。明亮的谢谢,伙计+1,如果月值为37,OP需要4年,那么Enumerable.Range1,int Math.Ceilingmonth/12d@Habib-谢谢。正确的观点。我现在没有危险,但为了更具防御性,把它包括在内是值得的。@Habib:没错,在这个计算中需要考虑一些逻辑因素。取决于OP想要什么样的行为。如果有解释的话,投反对票是很好的。我哪里出错了?有点离题,但您可以执行var years=months/12,不需要转换。Int32,您的操作数months和12都是整数值,将生成一个int输出。@Habib-再次感谢。这是一个相当基本的问题,但如果它是4/3呢?它将是1,因为除法是对int值进行的,结果将是整数。同样,对于3/4,结果将是0。如果有解释的话,也可以看到否决票。我哪里出错了?有点离题,但您可以执行var years=months/12,不需要转换。Int32,您的操作数months和12都是整数值,将生成一个int输出。@Habib-再次感谢。这是一个相当基本的问题,但如果它是4/3呢?它将是1,因为除法是对int值进行的,结果将是整数。同样,对于3/4,结果也将是0,请参见
foreach (var year in Enumerable.Range(1, months / 12))