Вам не нужно нужен список делегатов ... любой созданный вами в c # делегат будет многоадресным, поэтому все, что вам нужно, это любой делегат, и вы можетеобъедините их с +
.Просто вызовите его, и все цели будут достигнуты.Например:
Action target = null;
...
target += Method1;
...
target += Method2;
...
if(target != null) target(); // calls Method1 and Method2
Этот может (хотя он не обязательно должен стоять) быть реализован через event
, что сделает соглашение очень очевидным для вызывающей стороны.