首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#foreach

SWIFTUI 中@Binding数组后无法在FOREACH当中使用?

如何确定foreach循环中的第一个和最后一个迭代?

人生的旅途辣鸡前端
如果你的数组有唯一的数组值,那么确定第一个和最后一个元素是微不足道的: foreach($array as $element) { if ($element === reset($array)) echo 'FIRST ELEMENT!'; if ($element === end($array)) echo 'LAST ELEMENT!'; } 如果最后一个元素和第一个元素只在数组中出现一次,这会起作用,否则你会得到误报。因此,你必须比较键(他们是唯一的肯定)。 foreach($array as $key => $element) { reset($array); if ($key === key($array)) echo 'FIRST ELEMENT!'; end($array); if ($key === key($array)) echo 'LAST ELEMENT!'; } 更新:有些人担心性能和/或修改foreach循环内的数组指针。对于这些,你可以在循环之前缓存键值。 reset($array); $first = key($array); foreach($array as $key => $element) { if ($key === $first) echo 'FIRST ELEMENT!'; }... 展开详请

对于IEnumerable <T>的foreach相当于LINQ?

嗨喽你好摩羯座
你可以使用FirstOrDefault()可用的扩展名IEnumerable<T>。通过false从谓词返回,它将为每个元素运行,但不会在乎它实际上找不到匹配。这将避免ToList()开销。 IEnumerable<Item> items = GetItems(); items.FirstOrDefault(i => { i.DoStuff(); return false; });... 展开详请

你如何获得foreach循环的当前迭代的索引?

Dust资深服务器虚拟化工程师。
解决方案: foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; } 这通过使用Linq的这个重载获得item(item.value)和它的index(item.i):Select 函数[select]中的第二个参数表示源元素的索引。 该new { i, value }是创建一个新的匿名对象。... 展开详请
领券