【问题标题】:Asp.net foreach loop [closed]Asp.net foreach 循环 [关闭]
【发布时间】:2017-02-13 14:19:22
【问题描述】:

foreach 循环是检查数组的空索引还是在元素结束的那个索引处终止?例如,在数组的索引 0 处元素存在且索引 1 为空,然后在索引 2 处存在元素,foreach 循环是检查索引 2 处的元素还是在索引 1 处终止?

【问题讨论】:

  • 这听起来像是你可以通过自己运行代码来检查的东西。我不知道你为什么需要我们。
  • 加个例子会更清楚
  • foreach 将成功循环初始化数组的所有元素。如果有 0 个元素,则循环 0 次。这也是你可以很容易地自己尝试的东西。如果数组为空,它将中断。你也可以测试一下。
  • 您遇到了 XY 问题。我猜您的网页上没有呈现某些内容,而您认为 “我知道,foreach() 必须被破坏!”。它不是。请阅读How to Ask 并生成minimal reproducible example 来说明您的问题并重现您的问题。

标签: c# asp.net asp.net-mvc-4


【解决方案1】:

foreach 循环将运行数组的长度。在您的示例中,有 3 个数组元素,但一个是空的。 foreach 循环将按照索引的顺序运行 3 次,0 然后 1 然后 2。

【讨论】:

  • ... 并将按索引顺序运行。
  • 正确。我认为这是暗示的,但话说回来,我认为 foreach 也暗示了长度。取点
  • @mason 我从来没有这样想过,在某种程度上我正在为这个问题做出贡献!
  • 这个问题我已经去回答过了,我就不说了。以后我就不回答了。
  • @mason 这有点太笼统了。您还可以从纯粹的个人知识和经验来回答 OP 在特定主题上可能缺乏的问题。
【解决方案2】:

让我解释一下foreach 的实际作用。
它按顺序遍历IEnumerable 中的元素集合,而不跳过任何内容,即使当前元素的值是null

如果您有一个带有[5,2,24] 的数组,则元素将以5224 的形式调用,然后将停止。

【讨论】:

  • 这并不能真正回答问题。
  • @mason without skipping any 不是暗示答案吗?
  • 没有。因为这取决于您在特定索引处的元素为空或空元素位于数组末尾时跳过的意思。
  • @mason 定义空元素foreach 仍将遍历具有值 null 的元素。
  • @mason 你的最后一部分可能是对的,但我还是想尝试一下。通过添加我上次评论的信息更新了我的答案..
【解决方案3】:

Foreach 循环在它包含的值上运行。 例如:循环包含=[1,2,3,5] 然后 基于数据计数的循环

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多