Questions tagged «foreach»

foreach是一个循环构造,为列表/集合/数组中的每个元素执行一段给定的代码。与for循环相比,foreach循环不需要编码器维护计数器变量来避免偏离1(fencepost)的bug。建议在需要对整个数组/列表/集合进行简单迭代时使用。


7
PHP“ foreach”实际上如何工作?
首先,我要说一下我知道它是什么foreach,做什么以及如何使用它。这个问题关系到它在引擎盖下的工作方式,我不希望出现“这就是如何用foreach” 循环数组”的答案。 很长时间以来,我一直认为该方法foreach可用于数组本身。然后,我发现许多关于它可以与数组副本一起使用的事实的引用,从那时起,我一直以为这是故事的结尾。但是我最近对此事进行了讨论,经过一番实验后发现这实际上并非100%正确。 让我表明我的意思。对于以下测试用例,我们将使用以下数组: $array = array(1, 2, 3, 4, 5); 测试用例1: foreach ($array as $item) { echo "$item\n"; $array[] = $item; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 2 3 4 5 1 2 3 4 5 */ 这清楚地表明,我们不是直接使用源数组-否则循环将永远持续下去,因为我们在循环过程中不断将项目推入数组。但是只是为了确保是这种情况: 测试用例2: foreach …

4
C#在foreach中重用变量是否有原因?
在C#中使用lambda表达式或匿名方法时,我们必须警惕对修改后的闭包陷阱的访问。例如: foreach (var s in strings) { query = query.Where(i => i.Prop == s); // access to modified closure ... } 由于修改了闭包,因此上述代码将导致Where查询中的所有子句都基于的最终值s。 正如解释在这里,这是因为该s变量在声明foreach环以上的编译器编译如下: string s; while (enumerator.MoveNext()) { s = enumerator.Current; ... } 而不是像这样: while (enumerator.MoveNext()) { string s; s = enumerator.Current; ... } 如此处所指出的,在循环外声明变量没有任何性能优势,在正常情况下,我能想到的唯一原因是如果您打算在循环范围外使用变量: string s; while (enumerator.MoveNext()) { …

27
Java的“ for each”循环如何工作?
Наэтотвопросестьответына 堆栈溢出нарусском:Какработаетцикл的foreachвJava的? 考虑: List<String> someList = new ArrayList<String>(); // add "monkey", "donkey", "skeleton key" to someList for (String item : someList) { System.out.println(item); } 如果for不为每种语法使用,等效循环将是什么样?

30
如何获取foreach循环当前迭代的索引?
在C#中是否有一些我没遇到过的稀有语言构造(例如我最近学到的一些,有些是关于Stack Overflow的)来获取代表foreach循环当前迭代的值? 例如,我目前根据情况执行以下操作: int i = 0; foreach (Object o in collection) { // ... i++; }
938 c#  foreach 



16
使用LINQ更新集合中的所有对象
有没有办法使用LINQ执行以下操作? foreach (var c in collection) { c.PropertyToSet = value; } 为了澄清,我想遍历集合中的每个对象,然后更新每个对象的属性。 我的用例是,我在博客文章上有很多评论,我想遍历博客文章上的每个评论,并将博客文章上的日期时间设置为+10小时。我可以用SQL做到这一点,但我想将其保留在业务层中。
498 c#  .net  linq  foreach 


13
如何找到foreach索引?
是否可以找到foreach索引? 在一个for循环如下: for ($i = 0; $i < 10; ++$i) { echo $i . ' '; } $i 会给你索引。 我必须使用for循环还是有某种方法可以在foreach循环中获取索引?
489 php  loops  foreach 

16
JavaScript中的For..In循环-键值对
我想知道是否有办法foreach在JavaScript中执行类似PHP 循环的操作。我正在寻找的功能类似于以下PHP代码片段: foreach($data as $key => $value) { } 我当时在看JS for..in循环,但是似乎没有办法指定as。如果我使用“普通”的for循环(for(var i = 0; i < data.length; i++)执行此操作,是否有办法获取键=>值对?



10
在JavaScript中使用for…of语法获取循环计数器/索引
警告: 问题仍然适用于for…of循环。>不要for…in用于遍历Array,而要用于遍历对象的属性。就是这样 我了解for…inJavaScript 的基本语法如下: for (var obj in myArray) { // ... } 但是,如何获取循环计数器/索引? 我知道我可能可以做类似的事情: var i = 0; for (var obj in myArray) { alert(i) i++ } 甚至是好旧的: for (var i = 0; i < myArray.length; i++) { var obj = myArray[i] alert(i) } 但是我宁愿使用更简单的for-in循环。我认为它们看起来更好并且更有意义。 有没有更简单或更优雅的方式? 在Python中很简单: for i, …

13
从Java 8流中断还是返回forEach?
当在上使用外部迭代时,Iterable我们使用break或return通过增强的for-each循环进行以下操作: for (SomeObject obj : someObjects) { if (some_condition_met) { break; // or return obj } } 我们如何break或在Java 8 lambda表达式中return使用内部迭代,例如: someObjects.forEach(obj -> { //what to do here? })
312 java  foreach  lambda  java-8 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.