У моєму коді потрібно 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();
// ...
}
Але це просто незручно .
Що б ви зробили в цьому сценарії?