我正在编写一个处理银行存款的简单C#应用程序。 我希望能够以年度,月度或季度基本显示结果,如何做到这一点?我怎样才能遍历一组结果,并且只显示每三个帖子(例如,如果我每季度使用一次)。
在Python中,我可以使用range(1,31,3)
但是如何在C#中完成?
更新1
我想循环12次(每年)并计算每个循环的兴趣,但我只想每隔三个循环(每季度)打印结果。我怎样才能做到这一点?
答案 0 :(得分:4)
我不确定我是否正确理解了这个问题,但如果你想要每3天一次,你可以使用这个表达式:
Enumerable.Range(1, 31).Where(e => e % 3 == 0);
返回以下值:
3
6
9
12
15
18
21
24
27
30
编辑:
我想循环12次(每年)和 计算每个循环的兴趣,但我 只想打印结果 第三个循环。我怎么能做到这一点?
您可以简单地从1循环到12,如果您想打印每3个循环,只需查看此示例。 sum
变量保留总计。
int sum=0;
foreach (int i in Enumerable.Range(1, 12))
{
int tmp = i;
sum += DoYourCalculation(tmp);
if (tmp % 3 == 0)
{
Console.WriteLine(sum);
}
}
答案 1 :(得分:2)
仅显示每三个项目?
for (int i = startingItem; i < list.Count; i += 3)
{
// show list[i]
}
答案 2 :(得分:1)
这可能最好在SQL中完成,假设您使用的是WITH ROLLUP
或类似的数据库。
答案 3 :(得分:0)
你在这里没有给我们太多帮助......你有什么样的数据结构?一个数据库?一个列表?数组?
你可以在循环中做到这一点:
for (int i = 1; i<= 12; i+=3) {...}
假设您每月有一条记录,这将每三个月发一次。虽然,季度结果通常是过去3个月的总和,但它们不是(嗯,可能比这更复杂)?因此,显示第3项可能还不够,您可能需要经历3个项目,显示该季度的总和,查看下3个项目,显示总和等。 ..
...如果我对它更好,我会尝试使用LINQ解决方案。 ;)
修改强>
总结数组中的3个数字并显示它们:
int sum;
for (int i =1; i<= 12; i+=3)
{
//just make sure you don't go beyond the bounds of your array!
sum = someArray[i]+someArray[i+1]+someArray[i+2];
Console.WriteLine(sum);
}
替代:
int sum;
for (int i =1; i<= 12; i++)
{
sum += someArray[i];
if (i%3==0)
{
Console.WriteLine(sum);
sum =0;
}
}
......还有很多其他方法可以做到这一点。我没有编译这些,所以我不知道100%他们是你想要的,但他们应该让你走上正轨。
答案 4 :(得分:0)
类似于Shimrod所说的你可以做到这一点......
var range = Enumerable.Range(1, 10).Select(x => x * 3);
...无论如何都不会创建你要跳过的值。
如果你想通过LINQ获得更多功能,你可以创建这样的东西(优点是可以处理一组无数的数字[几乎是无限的,这会使用int
所以它会在{{1}处溢出}}] ...
int.MaxValue
答案 5 :(得分:0)
由于您希望处理每个值,并希望为每个第三个值执行一些特殊操作,因此您需要在循环内测试循环变量以检测该间隔。一些其他解决方案处理每三个值,但不是每个值的情况。这样的事情应该做,根据ProcessMonth和ProcessQuarter的需要替换你的实际逻辑。
for(int numMonth = 0; numMonth < 12; numMonth++)
{
ProcessMonth(balance[numMonths]);
if ((numMonth + 1) % 3 == 0)
{
ProcessQuarter(numMonth);
}
}