【发布时间】:2012-02-12 01:52:17
【问题描述】:
我收到 ReSharper 警告“IEnumerable 的可能多重枚举”,代码如下:
public void Mymethod(IEnumerable<int> entities)
{
var enumerator = entities.GetEnumerator();
var entityType = entities.GetType();
}
正如在许多 stackoverflow-topics 中描述的那样(以及在 http://confluence.jetbrains.net/display/ReSharper/Possible+multiple+enumeration+of+IEnumerable 上),ReSharper 识别出查询运行了两次。
我的问题是,为什么“GetType()”语句被识别为查询。
有什么建议吗?
提前致谢。
【问题讨论】:
-
我很确定它指的是
enumerator行。它可能正在寻找相应的Dispose()调用。 -
我收到两个语句的警告。如果我只调用 .GetType() 两次而不是 .GetEnumerator(),也会发生这种情况
-
@AakashM:感谢您在跟踪器中提交。看起来错误将在下一个版本中修复。我期待更新;-)
标签: c# linq resharper enumerator gettype