W moim kodzie muszę używać IEnumerable<>
kilka razy, dlatego otrzymuję błąd Resharper „Możliwe wielokrotne wyliczenie IEnumerable
”.
Przykładowy kod:
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;
}
- Mogę zmienić
objects
parametr na,List
a następnie uniknąć możliwego wielokrotnego wyliczenia, ale wtedy nie otrzymuję najwyższego obiektu, który mogę obsłużyć. - Inną rzeczą, którą mogę zrobić, to przekonwertować
IEnumerable
abyList
na początku metody:
public List<object> Foo(IEnumerable<object> objects)
{
var objectList = objects.ToList();
// ...
}
Ale to jest po prostu niezręczne .
Co byś zrobił w tym scenariuszu?