Забудьте об очистке, тот факт, что вы изменяете список вообще, может нанести ущерб объектам, которые подписываются на ваше событие. Если они сохранят список, который возвращается , вы будете изменять данные каждый раз, когда добавляете в список или , очищайте его.
Мало того, что вы можете испортить подписчика, он может связываться с вами , поскольку они могут изменять список и влиять на ваш собственный процесс.
Если это не желаемое поведение (и я не могу думать, что это так), вы захотите отправить даже не копию, а IEnumerable<Foo>
или ReadOnlyCollection<Foo>
. Потому что даже если вы отправите копию, если у вас будет несколько подписчиков, они все получат одну и ту же копию, поэтому их мутации все равно будут разрушать друг друга.