Dans mon code dans le besoin d'utiliser un IEnumerable<>
plusieurs fois ainsi obtenir la Resharper erreur de "multiples énumération de IEnumerable
".
Exemple de code:
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;
}
- Je peux changer les objets paramètre
List
puis éviter de multiples énumération, mais alors je ne comprends pas la plus haute de l'objet que je peux gérer. - Une autre chose que je peux faire est de convertir l'
IEnumerable
deList
dans le début de la méthode:
public List<object> Foo(IEnumerable<object> objects)
{
var objectList = objects.ToList();
// ...
}
Mais c'est juste maladroit.
Que feriez-vous dans ce scénario?