List.AddRange с параметром IEnumerable не работает?

У меня есть следующий сценарий, в котором я хочу добавить некоторые элементы в список...

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

Используя этот код, элементы не добавляются в список, но если я добавлю.ToList ()после оператора Linq, элементы будут добавлены правильно. Я предполагаю, что это связано с отложенным выполнением, но я бы подумал, что, учитывая, что функция List.AddRange принимает IEnumerable, она будет перечислять добавляемые элементы.

Может кто-нибудь прояснить, почему это происходит?

8
задан yoozer8 10 August 2012 в 20:06
поделиться