Если я полностью понимаю ваш вопрос, кажется, что некоторые другие упустили момент, вы хотите создать статическую коллекцию, аналогичную Java, в которой вы можете объявлять и заполнять одну строку кода без необходимости создайте специальный метод для этого (согласно некоторым другим предложениям). Это можно сделать с помощью литерала массива (для предотвращения прокрутки написанного в две строки):
private static readonly ICollection<string> Strings =
new string[] { "Hello", "World" };
Это одновременно объявляет и заполняет новую коллекцию только для чтения списком элементов. Работает в 2.0 и 3.5, я проверил это просто чтобы быть вдвойне уверенным.
В 3.5, хотя вы можете использовать вывод типа, так что вам больше не нужно использовать массив string [], который удаляет еще больше нажатий клавиш:
private static readonly ICollection<string> Strings =
new[] { "Hello", "World" };
Обратите внимание на отсутствующий тип "string" во второй строке строки. Строка автоматически выводится из содержимого инициализатора массива.
Если вы хотите заполнить его списком, просто измените новую строку [] для нового списка а-ля:
private static readonly ICollection<string> Strings =
new List<string>() { "Hello", "World" };
Конечно, поскольку ваш тип IEnumerable, а не конкретная реализация, если вы хотите получить доступ к методам, специфичным для List , таким как .ForEach (), вам потребуется преобразовать его в List:
((List<string>)Strings).ForEach(Console.WriteLine);
Но это небольшая цена за переносимость [это слово?].