Здравствуйте, StatujaLeha, Вы писали:
SL>Приветствую!
Лайк и за реализацию, и за код, хорошо сделано
Насчёт втащить в CJ я в раздумьях

С одной стороны имеем 2x выигрыш в бенчмарке, с другой — кучу кода вместо
[Pure, NotNull, LinqTunnel]
private static IEnumerable<T> ConcatCore<T>([NotNull] IEnumerable<T> source, T element)
{
foreach (var item in source)
yield return item;
yield return element;
}
с третьей — в core 3.1 разница уже не так впечатляет
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.900 (1909/November2018Update/19H2)
Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=3.1.300
[Host] : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
.NET Core 3.1 : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
Job=.NET Core 3.1 Runtime=.NET Core 3.1
| Method | Mean | Error | StdDev | Median |
|------------------- |----------:|----------:|----------:|----------:|
| ReferenceCodeJam | 25.34 ms | 0.141 ms | 0.110 ms | 25.36 ms |
| ReferenceMy | 12.04 ms | 0.087 ms | 0.082 ms | 12.01 ms |
| Referencex5CodeJam | 131.43 ms | 2.199 ms | 3.154 ms | 131.42 ms |
| Referencex5My | 42.65 ms | 0.694 ms | 0.580 ms | 42.75 ms |
| intCodeJam | 23.51 ms | 0.217 ms | 0.193 ms | 23.50 ms |
| intMy | 19.04 ms | 0.115 ms | 0.096 ms | 19.06 ms |
| intx5CodeJam | 105.39 ms | 6.257 ms | 16.373 ms | 100.47 ms |
| intx5My | 71.85 ms | 1.427 ms | 1.805 ms | 71.79 ms |
| longCodeJam | 23.76 ms | 0.231 ms | 0.216 ms | 23.68 ms |
| longMy | 20.00 ms | 0.184 ms | 0.172 ms | 19.97 ms |
| longx5CodeJam | 135.20 ms | 15.707 ms | 46.314 ms | 110.50 ms |
| longx5My | 80.00 ms | 4.103 ms | 10.882 ms | 76.13 ms |
Ну, т.е. конкретно этот метод мы втащим, не проблема. А с остальными хэлперами для IEnumerable чего делать?

Переписывать всё — не вариант, код итераторов достаточно тяжёлый бывает. Переписать выборочно можно, но кто потом этот код будет поддерживать?
Короче, я в раздумьях и не готов топить ни за, ни против.