Я написал собственные методы расширения для этого:
public static IEnumerable<T> Append<T>(this IEnumerable<T> source, T item)
{
foreach (T i in source)
yield return i;
yield return item;
}
public static IEnumerable<T> Prepend<T>(this IEnumerable<T> source, T item)
{
yield return item;
foreach (T i in source)
yield return i;
}
В вашем сценарии вы должны написать:
var all = GetData().Prepend(GetHeaders());
Как прокомментировал chilltemp, это не изменяет исходную коллекцию.В истинном стиле Linq он генерирует новый IEnumerable<T>
.
Примечание: Рекомендуется проверка пустых аргументов для source
, но для краткости не показана.