【问题标题】:Help with foreach, getting 'possible multiple enumeration of IEnumerable'帮助 foreach,获得“IEnumerable 的可能多重枚举”
【发布时间】:2011-09-12 15:45:42
【问题描述】:

尝试做一个foreach:

foreach(User in userList)
{

}

其中 userList 是 IEnumerable<User> userList

我尝试这样做:userList.ToList() 但我得到了相同的消息。

【问题讨论】:

标签: c# resharper resharper-6.0


【解决方案1】:

在您的foreach 语句中,您没有为User 的当前实例指定标识符。尝试在 User 类型之后添加一个标识符(例如,currUser 或只是 user),如下所示:

foreach(User user in userList)
{

}

【讨论】:

    【解决方案2】:

    其他答案向您展示了您的语法问题,但某些工具(我认为 resharper)会警告您您可能会多次枚举序列(甚至可能是 VS - 不知道,因为我将它们一起使用)。 如果这是问题,请写类似

    var userArray = userList.ToArray();
    

    并使用 userArray 代替 userList

    【讨论】:

    • 查看 R# 文档:link
    【解决方案3】:

    应该是:

    foreach(User user in userList)
    {
    
    }
    

    【讨论】:

      【解决方案4】:

      foreach 循环要求您定义一个变量来放置每次迭代。您只定义了类并且缺少该变量。

      foreach(User _user in userList)
      {
      
      }
      

      【讨论】:

        猜你喜欢
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-29
        相关资源
        最近更新 更多