每个人都给了你关于 foreach 的正确答案,即它是一种循环遍历实现 IEnumerable 的元素的方法。
另一方面, for 比其他答案中显示的灵活得多。实际上,for 用于在指定条件为真时执行一个语句块。
来自微软文档:
for (initialization; test; increment)
statement
初始化
必需的。一种表达。这个表达式只执行一次,在循环执行之前。
测试
必需的。一个布尔表达式。如果 test 为真,则执行语句。如果测试为假,则终止循环。
增量
必需的。一种表达。每次循环结束时都会执行增量表达式。
声明
可选的。如果测试为真,则要执行的语句。可以是复合语句。
这意味着您可以以多种不同的方式使用它。经典的学校例子是1到10的数字之和:
int sum = 0;
for (int i = 0; i <= 10; i++)
sum = sum + i;
但你也可以用它来对数组中的数字求和:
int[] anArr = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
int sum = 0;
for (int i = 0; i < anArr.Length; i++)
sum = sum + anArr[i];
(这也可以通过 foreach 完成):
int[] anArr = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
int sum = 0;
foreach (int anInt in anArr)
sum = sum + anInt;
但你可以将它用于1到10的偶数之和:
int sum = 0;
for (int i = 0; i <= 10; i = i + 2)
sum = sum + i;
你甚至可以发明一些像这样的疯狂的东西:
int i = 65;
for (string s = string.Empty; s != "ABC"; s = s + Convert.ToChar(i++).ToString()) ;
Console.WriteLine(s);