for循环可以通过声明一个int型的变量来操作索引值不同的元素
如果foreach也要这么做,我就不知道有什么通用的方法了

解决方案 »

  1.   

    for和foreach是两种不同方式的循环,为什么这两个要通用?
    在 C# 中,只要类有所需的 GetEnumerator、MoveNext、Reset 和 Current 成员,便可以与 foreach 一起使用。省略接口的好处为,使您可以将 Current 的返回类型定义得比 object 更明确,从而提供了类型安全。你可以通过实现上面的几个方法就可以对你的数据进行循环操作。
      

  2.   

    没太明白LZ的问题
    不过foreach的实现原理和for是不一样的
    foreach操作的是实现了ienumerator接口的对象
      

  3.   

    for是需要你自己创建索引值取得相应位置的对象。
    foreach简化了你的循环的操作,直接声明对象,自动遍历。
    要什么通用的方法?
      

  4.   

    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]);
    }
      

  5.   

    for(object obj in objectarraylist)
    {
    ..
    }
      

  6.   

    for 是在知道要循環的次數時使用的
    foreach是在不知道循環次數時使用的
      

  7.   


    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]
      

  8.   

    这种情况就应该直接用for循环。
      

  9.   

    操作?按照例子,不明白你要操作的是一项还是????如果只是要判断、操作一项的话,我看foreach不适合!for(int i=1;i<3;i++)
    {
     foreach(string a in s)
     {
       if(a==s[i-1])//if(s[i-1]==a)
       {
         .................
       }
     }
    }
      

  10.   


    string[] s = new string[] { "a", "b", "c", "d" };
    for(int i=1; i < 3; i++)
    {
        s[i-1] = s[i];
    }上面这个循环,用foreach怎么操作
      

  11.   

    上面这个循环, 不适合用foreach,用for就很好了。
      

  12.   

    如果非要用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];
    }
      

  13.   

    像你上面操作的话,不是foreach就能搞定的