Здравствуйте, SergASh, Вы писали:
SAS>Привет всем!
SAS>Есть две последовательности одинаковой длины. Как для них построить соединение, которое бы соотносило элементы с одинаковыми индексами?
SAS>То есть на входе { 1, 2, 3 }, { "ein", "zwei", "drei" }. А на выходе { { 1, "ein" }, { 2, "zwei" }, { 3, "drei" } }.
SAS>Интересует человеческий вариант на LINQ-операторах, а не это убожество, приведенное ниже.
...
SAS>Спасибо.
Ну сходу приходит на ум вот это. Но сразу оговорюсь медленно

хотя, с другой стороны, понятно и скорость написания высокая
int[] digits = { 1, 2, 3 };
string[] german = new[] { "ein", "zwei", "drei" };
var result = from digit in digits
join phrase in german on digits.ToList<int>().IndexOf(digit) equals german.ToList<string>().IndexOf(phrase)
select new { Digit = digit, Phrase = phrase};
foreach ( var translation in result )
Console.WriteLine( "'{0}' stands for {1}", translation.Phrase, translation.Digit );