Вы просматриваете список, используя цикл. Каждый из них работает.
- это первый очевидный кандидат.
пока работает, но немного больше пишет.
foreach работает - если Вы не начинаете изменять список. Причуда foreach заключается в том, что он работает только с перечислителями под капотом, и перечислители становятся недействительными, если коллекция изменена.
Однако следует учитывать одну особенность, которая заключается в уведомлении "ElementAdded" о (пере) создании списка,Обычно в этих классах отсутствуют функции AddRange.
Если вы не расскажете нам, что вы делаете с экземплярами SomeClass во время его изменения, и как выглядит класс, мы не можем сказать вам, является ли это "реактивным" программированием. Но мне кажется, что это просто модное слово.