() Оказавшись в ситуации, когда у меня есть метод с этой подписьюEnumerable.Unit функция
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;
}
Является ли это хорошая идея? Или есть что-то лучшее, что я должен делать?
Да, это определенно лучше (ну, выглядит лучше меня), чем новый список (OBJ), который я подумал. –
Benjol
'new List (obj)' требует записи типа явно. Не беспокойтесь о 'new'ing массиве слишком много. Если бы существовал «Enumerable.Unit (obj)», ему все равно пришлось бы создавать новый класс для возврата. –
Ах. Я ненавижу противоречивую интерпретацию уценки в комментариях к сообщениям. –