It feels a bit hacky, but you can set up a Dictionary<RadioButton, Action> containing a mapping between the RadioButton controls and the corresponding methods (parameterless void methods corresponding to the subscription of the Action delegate):
Dictionary<RadioButton, Action> _rbMethods = new Dictionary<RadioButton, Action>();
When loading the form, add buttons and appropriate methods to the map:
_rbMethods.Add(rbFrenchImp, FrenchImpAction); _rbMethods.Add(rbFrenchMet, FrenchMetAction); _rbMethods.Add(rbEnglishImp, EnglishImpAction);
Then you can easily call the appropriate methods for the selected radio button (or buttons, if they are in different groups):
foreach (RadioButton key in _rbMethods.Keys.Where(rb => rb.Checked)) { _rbMethods[key](); }
source share