Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# For循环到Foreach_C#_Loops_For Loop_Foreach - Fatal编程技术网

C# For循环到Foreach

C# For循环到Foreach,c#,loops,for-loop,foreach,C#,Loops,For Loop,Foreach,嗨,我有一个for循环进程,我想把它转换成foreach循环,但我不能让它工作,有人能帮我吗 int pallet = 1; int[] res = {5,1}; foreach (int element in res) { var resu = res.Length; if (resu < pallet) { } else { } } for (int i = 1; i <= res.Length; i++) { if (i <= pallet)

嗨,我有一个for循环进程,我想把它转换成foreach循环,但我不能让它工作,有人能帮我吗

int pallet = 1;
int[] res = {5,1};

foreach (int element in res)
{
  var resu = res.Length;
  if (resu < pallet)
    { }
  else { }
}

for (int i = 1; i <= res.Length; i++)
{
  if (i <= pallet)
    { }
  else { }
}

我认为这可以解决你的问题:

int pallet = 1;
int[] res = { 5, 1 };

foreach (int element in res)
{
  var resu = res.Length;
  if (resu < pallet)
    { }
  else { }
}

int i = 0;
foreach (int element in res)
{
  if (i <= pallet)
    { }
  else { }
  i++;
}

这里没有什么真正有意义的,您正在填充数组,但没有使用内容。在for循环中,使用索引并将其与托盘进行比较,而不是实际数组值res[i-1]。由于foreach循环中没有任何索引,因此返回的是数组的实际元素。我相信你可能想要这样的东西,但我可能错了

您的for循环:

foreach循环:您的源代码错误。您可以将其修复为:
如果for循环是正确的,那么for循环是最好的方法,因为您需要当前位置,而foreach没有提供。注意:请不要添加不必要的标记。两个示例具有不同的逻辑,在foreach中,当数组大小小于托盘时,您执行一个块,但在for循环中,您仅当当前索引小于托盘时,才执行一个块。我希望它转换为foreach循环-为什么?执行var resu=res.Length;在foreach内部是不必要的,因为每次迭代的过程长度都不会改变。谢谢,这解决了我的问题。非常感谢。如果我+,你可以直接做。我看不到foreach的代码与文章中的代码相同,如何解决我转换为foreach循环的问题@无论是你的问题与前文无关,还是……无论如何,请考虑编辑你的问题来澄清你实际遇到的问题。@ Alexei Pias添加int i=0和i++。我不知道OP为什么要使用foreach循环来实现for更好的功能,但每个都有自己的功能。@John_/Monica Pias更改了部分功能,这部分功能可能很好。。。否则,为什么iMemew会要求帮助创建for循环进程,而我希望它转换为foreach循环。当然,for方法应该是从零到for (int i = 0; i < res.Length; i++) { if (res[i] <= pallet) { } else { } }
foreach (int element in res)
{
  if (element <= pallet)
    { }
  else { }
}
foreach (int element in res)  
{                               
  var resu = element;
  if (resu < pallet)
    { }
  else { }
}
for (int i = 1; i <= res.Length; i++)
{
  if (res[i-1] <= pallet)
    { }
  else { }
}