Вы можете использовать
(?i)^[A-DFI](?:,[A-DFI]){0,2}$
См. Демоверсию regex
Подробности
^
- начало строки [A-DFI]
- A
, B
, C
, D
, F
, I
(без учета регистра) (?:,[A-DFI]){0,2}
- 0, 1 или 2 вхождения ,
- запятая [A-DFI]
- A
, B
, C
, D
, F
, I
(без учета регистра)
$
- конец строки.
В C #:
var IsValid = Regex.IsMatch(text, @"^[A-DFI](?:,[A-DFI]){0,2}$", RegexOptions.IgnoreCase);