Liste.AddRange avec IEnumerable<T> paramètre ne fonctionne pas?

J'ai le scénario suivant, où je veux ajouter des éléments à une Liste...

List<T> items = new List<T>();
IEnumerable<T> addItems = someCollection.Where(...);
items.AddRange(addItems);

L'aide de ce code, des éléments sont ajoutés à la liste, mais si j'ajoute un .ToList() après Linq déclaration, puis les éléments sont ajoutés correctement. Je suppose que cela est dû à exécution différée, mais j'aurais pensé que, compte tenu de la Liste.AddRange fonction accepte un IEnumerable qu'il serait d'énumérer les éléments à ajouter.

Quelqu'un peut-veuillez éclaircir pourquoi cela se produit?

C'est le C#, droit?
Désolé, oui C# (4.0)
Comment voyez-vous la "aucun élément n'est ajouté", parce qu'il doit ajouter des éléments?
quel est le type de someCollection? Veuillez fournir le code qui fonctionne réellement, je ne suis pas tout à fait sûr où ToList doit être ajouté. Est someCollection IQueryable et est-il possible qu'il y est une mauvaise mise en œuvre fournisseur Linq?

OriginalL'auteur John | 2012-07-31