¿Por qué un controlador de eventos nunca se llama si se agrega dentro de un bucle en un ienumerable?¿Por qué un controlador de eventos nunca se llama si se agrega dentro de un bucle en un ienumerable?
Por ejemplo:
IEnumerable<MyType> list = someCollection.Select(i => new MyType(i));
foreach (var item in list)
item.PropertyChanged += item_PropertyChanged; <-- this never gets called
Bu si se asigna lista como
list = someCollection.Select(i => new MyType(i)).ToArray();
el controlador de eventos se consiga llamar ..
¿Por qué? (Me imagino que tiene algo que ver con el hecho de que una consulta LINQ es perezoso, pero el hecho de bucle a través de que el resultado no es suficiente?)