В настоящее время я немного экспериментирую с 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?