Есть ли синглтон «Пустой список» в С#?C#

Место общения программистов C#
Ответить
Anonymous
 Есть ли синглтон «Пустой список» в С#?

Сообщение Anonymous »

В C# я довольно часто использую LINQ и IEnumerable. И все хорошо (по крайней мере, в основном так).

Однако во многих случаях я обнаруживаю, что мне нужен пустой IEnumerable по умолчанию. То есть мне бы хотелось

Код: Выделить всё

for (var x in xs) { ... }
чтобы работать без проверки нуля. Вот что я сейчас делаю, в зависимости от более широкого контекста:

Код: Выделить всё

var xs = f() ?? new X[0];              // when xs is assigned, sometimes
for (var x in xs ?? new X[0]) { ... }  // inline, sometimes
Теперь, хотя вышеизложенное совершенно подходит для меня, то есть, если есть какие-либо «лишние накладные расходы» при создании объекта массива Мне просто все равно – мне интересно:

Существует ли в C#/ "пустой неизменяемый IEnumerable/IList" синглтон .NET? (А даже если нет, есть ли «лучший» способ справиться с описанным выше случаем?)

В Java есть Collections.EMPTY_LIST< /code> неизменяемый синглтон — «хорошо типизированный» через Collections.emptyList() — который служит этой цели, хотя я не уверен, что подобная концепция вообще может работать в C#, поскольку обрабатываются дженерики по-другому.

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/855 ... leton-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»