因此在我的代码中需要使用IEnumerable<>
几次,从而得到“可能的多重枚举IEnumerable
” 的Resharper错误。
样例代码:
public List<object> Foo(IEnumerable<object> objects)
{
if (objects == null || !objects.Any())
throw new ArgumentException();
var firstObject = objects.First();
var list = DoSomeThing(firstObject);
var secondList = DoSomeThingElse(objects);
list.AddRange(secondList);
return list;
}
- 我可以将
objects
参数更改为List
,然后避免可能的多重枚举,但随后我没有得到可以处理的最高对象。 - 另一件事,我可以做的就是将转换
IEnumerable
到List
在方法的开头:
public List<object> Foo(IEnumerable<object> objects)
{
var objectList = objects.ToList();
// ...
}
但是,这很尴尬。
在这种情况下您会做什么?