【发布时间】:2012-01-04 15:58:32
【问题描述】:
在我的代码中,我需要多次使用 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();
// ...
}
但这只是尴尬。
在这种情况下你会怎么做?
【问题讨论】:
标签: c# .net performance resharper