我的班级实现IEnumerable<T>
. 类还实现:
void AddRange(IEnumerable<T> items)
{
// items can be a deffered query against the collection items being added to
var itemslist = items.ToList();
...processing and adding...
}
但我有些怀疑转换为静态集合是否是一个好的设计。
例如 List 本身没有这样的东西:
var list = new List<int> {1, 2, 3};
list.AddRange(list.Select(i => i+list.Count).ToList());
没有例外。
var list = new List<int> {1, 2, 3};
list.AddRange(list.Select(i => i+list.Count));
InvalidOperationException :在枚举期间修改了集合。