Re: Детский вопрос по LINQ
От: losev-al  
Дата: 04.10.08 13:52
Оценка:
Здравствуйте, 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 );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.