在我的代码中需要使用IEnumerable<>几次因此得到Resharper错误“可能的多个枚举IEnumerable”。
示例代码:
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();
// ...
}
但这只是尴尬。
在这种情况下你会做什么?
心有法竹
翻翻过去那场雪
偶然的你