La manipulation de l'avertissement d'une possible plusieurs énumération de IEnumerable

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 le objects paramètre à List et puis éviter les 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 le IEnumerable à List au 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?