Функция Enumerable.Unit () - PullRequest
       11

Функция Enumerable.Unit ()

1 голос
/ 18 сентября 2009

Нахожу себя в ситуации, когда у меня есть метод с этой подписью

void DoSomething(IEnumerable<T> before, IEnumerable<T> after)

Мне часто приходится звонить, когда у меня только один элемент, а не IEnumerable.

Я думал добавить три перегрузки, но это не помогает, когда один из аргументов равен нулю.

Так что я подумал, что мог бы просто «обернуть» свой единственный элемент в IEnumerable и отправить его дальше, но я не могу найти на Enumerable ничего, что выглядело бы так, как я хочу (возможно, я не выгляжу достаточно жестко).

Итак, я смотрю на что-то вроде этого

    public static IEnumerable<T> EnumerableUnit<T>(T item)
    {
        if(item != null) yield return item;
    }

Это хорошая идея? Или есть что-то лучшее, чем я должен заниматься?

1 Ответ

5 голосов
/ 18 сентября 2009

Это может помочь:

new[]{obj}
...