C# For循环到Foreach
嗨,我有一个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)
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 { }
}