Интерлевативное слияние с LINQ?

В настоящее время я немного экспериментирую с LINQ. Допустим, у меня есть две коллекции одинаковой длины:

var first = new string[] { "1", "2", "3" };
var second = new string[] { "a", "b", "c" };

Я хотел бы объединить эти две коллекции в одну, но в чередующемся виде. Таким образом, получившаяся последовательность должна быть:

"1", "a", "2", "b", "3", "c"

Пока что я придумал комбинацию Zip, анонимного типа и SelectMany:

var result = first.Zip( second, ( f, s ) => new { F = f, S = s } )
                  .SelectMany( fs => new string[] { fs.F, fs.S } );

Кто-нибудь знает альтернативный/симпатичный способ добиться такого чередования с LINQ?

28
задан Andrew Shepherd 28 August 2011 в 23:01
поделиться