+ -
当前位置:首页 → 问答吧 → foreach循环输出数组的问题

foreach循环输出数组的问题

时间:2011-12-12

来源:互联网

static void Main(string[] args)
  {
  string[] strings = { "a","b","c"};
  foreach(string info in strings)
  {
  Console.WriteLine(strings[1]);
   
  }
  Console.Read();
  }
  
这些代码输出的结果大家都知道是abc
我知道,我的代码有点问题,输出的变量名称不是info,而是strings,因为我如果在输出那里写info[0]这样的是不行的,我也不太懂,但不是重点。重点是以上面的代码输出的结果是3个值。

strings[0]则是 : 
a
a
a
strings[1]则是 :
b
b
b
strings[3]则是 :
c
c
c

----------------------------------------------

但是,我把foreach去掉:
  static void Main(string[] args)
  {
  string[] strings = { "a","b","c"};  
  Console.WriteLine(strings[0]);
  Console.Read();
  }
输出来的值则是1个,不再是3个。
我菜鸟不懂,请各位给个解释 ..

作者: Nopzhack   发布时间: 2011-12-12

strings[1]表示string数组的第二个string

info[0]表示info字符串的第一个字符

foreach就是遍历,你遍历而不用到遍历变量info是没有意义的

作者: Icedmilk   发布时间: 2011-12-12

引用 1 楼 icedmilk 的回复:

strings[1]表示string数组的第二个string

info[0]表示info字符串的第一个字符

foreach就是遍历,你遍历而不用到遍历变量info是没有意义的

如果我使用了遍历的变量的话。如:
  foreach(string info in strings)
  {
  Console.WriteLine(into[0]);
  }
这样的话。则是报错的

作者: Nopzhack   发布时间: 2011-12-12

我很无语,
static void Main(string[] args)
  {
  string[] strings = { "a","b","c"};
  foreach(string info in strings)
  {
  Console.WriteLine(info)  
  }
  Console.Read();
  }
本来info就是你定义的一个字符串变量,在strings数组里面循环表示里面的一个选项,直接输出info就好,你这样写Console.WriteLine(strings[1]);
的话完全不干循环什么事情,等于你每次strings[1]输出第2字符,就是b,不循环都跟Console.WriteLine(strings[1]);
没有任何关联

作者: wzhwzhh6   发布时间: 2011-12-12

C# code

static void Main(string[] args)
{
  string[] strings = { "a","b","c"};
  foreach(string info in strings)
  {
    Console.WriteLine(strings[1]);
  }
  Console.Read();
 }


你要令输出为a、b、c,那么你的代码必须改为:
C# code

foreach(string info in strings)
{
  Console.WriteLine(info);
}
或者
for(int index=0;index<strings.Length;index++)
{
  Console.WriteLine(strings[index]);
}


你上面的代码是:Console.WriteLine(strings[1]);
strings[1]是代表,在数组strings内索引为1的值,即b,所以你总是输出b

作者: zsw19909001   发布时间: 2011-12-12