Generell sollten Sie versuchen, und die am wenigsten spezifische Art verwenden, die Ihren Zweck geeignet ist. IEnumerable ist weniger spezifisch als IList (IList implementiert IEnumerable). Wenn Sie also nicht etwas von IList (wie .Count, wie Sie vorschlagen, oder vielleicht hinzufügen, löschen, usw.) möchten, würde ich IEnumerable verwenden.
Einer der netten Ergänzungen, die Sie von IEnumerable erhalten, besteht darin, dass Sie Iteratormethoden schreiben können, um diesen Typ zurückzugeben (siehe "yield return" und Iteratormethoden, wenn Sie nicht damit vertraut sind). Dadurch können Sie sehr speichereffiziente "Pipelines" für Ihre Schleifen schreiben.
Ich stimme der Verwendung des am wenigsten abgeleiteten Typs zu. ICollection <> ist ausreichend für das Hinzufügen/Entfernen. –
@Mark H - guter Punkt - für die meisten Operationen zum Hinzufügen/Entfernen ist sogar IList unnötig spezifisch. –
IList * implementiert * IEnumerable ?! –