Ваш Select
вызов создает новые экземпляры MyType
, что означает, что ...
Когда list
набирается как IEnumerable<MyType>
, то вы имеете дело с новой последовательностью из новыми объектами каждый раз, когда вы перечисляете list
. Объекты, к которым вы добавляете обработчики событий , не являются теми же объектами, которые вы впоследствии тестируете.
Когда list
набирается как MyType[]
(с помощью вызова ToArray
), то вы имеете дело с одной и той же коллекцией объектов при каждом перечислении list
. Объекты, к которым вы добавляете обработчики событий , - это те же объекты, которые вы впоследствии тестируете.