string [] array = new string [] { "ABC", "DEFGH", "IJKLMNOP", "QRSTUVW", "XYZ" }; int i = 0; foreach (string s in array) { System.Console.WriteLine("{0}: {1}", i++, s); } for (i = 0; i < array.Length; i++) { System.Console.WriteLine("{0}: {1}", i, array[i]); }
for(object obj in objectarraylist) { .. }
for 是在知道要循環的次數時使用的 foreach是在不知道循環次數時使用的
string[] s = new string[] { "a", "b", "c", "d" }; for(int i=1; i < 3; i++) { s[i-1]....; s[i]....; }如果用 foreach , 上面的循环只能操作到 s[i] 我的意思是如何用foreach 操作 上面for循环中的s[i-1]
这种情况就应该直接用for循环。
操作?按照例子,不明白你要操作的是一项还是????如果只是要判断、操作一项的话,我看foreach不适合!for(int i=1;i<3;i++) { foreach(string a in s) { if(a==s[i-1])//if(s[i-1]==a) { ................. } } }
string[] s = new string[] { "a", "b", "c", "d" }; for(int i=1; i < 3; i++) { s[i-1] = s[i]; }上面这个循环,用foreach怎么操作
上面这个循环, 不适合用foreach,用for就很好了。
如果非要用foreach,就是这样: string[] s = new string[] { "a", "b", "c", "d" }; int i = 0; foreach (string s1 in s) { if (i > 0) s[i-1] = s1; i++; }但明显没有直接用for来得好: string[] s = new string[] { "a", "b", "c", "d" }; for(int i = 1; i < s.Length; i++) { s[i-1] = s[i]; }
在 C# 中,只要类有所需的 GetEnumerator、MoveNext、Reset 和 Current 成员,便可以与 foreach 一起使用。省略接口的好处为,使您可以将 Current 的返回类型定义得比 object 更明确,从而提供了类型安全。你可以通过实现上面的几个方法就可以对你的数据进行循环操作。
不过foreach的实现原理和for是不一样的
foreach操作的是实现了ienumerator接口的对象
foreach简化了你的循环的操作,直接声明对象,自动遍历。
要什么通用的方法?
int i = 0;
foreach (string s in array)
{
System.Console.WriteLine("{0}: {1}", i++, s);
}
for (i = 0; i < array.Length; i++)
{
System.Console.WriteLine("{0}: {1}", i, array[i]);
}
{
..
}
foreach是在不知道循環次數時使用的
string[] s = new string[] { "a", "b", "c", "d" };
for(int i=1; i < 3; i++)
{
s[i-1]....;
s[i]....;
}如果用 foreach , 上面的循环只能操作到 s[i]
我的意思是如何用foreach 操作 上面for循环中的s[i-1]
{
foreach(string a in s)
{
if(a==s[i-1])//if(s[i-1]==a)
{
.................
}
}
}
string[] s = new string[] { "a", "b", "c", "d" };
for(int i=1; i < 3; i++)
{
s[i-1] = s[i];
}上面这个循环,用foreach怎么操作
string[] s = new string[] { "a", "b", "c", "d" };
int i = 0;
foreach (string s1 in s)
{
if (i > 0) s[i-1] = s1;
i++;
}但明显没有直接用for来得好:
string[] s = new string[] { "a", "b", "c", "d" };
for(int i = 1; i < s.Length; i++)
{
s[i-1] = s[i];
}