Как это выражение запроса LINQ может быть перевыражено вызовами метода расширения?
public static List<Tuple<int, int>> Concat() { return (from x in Enumerable.Range(1, 3) from y in Enumerable.Range(4, 3) select new Tuple<int, int>(x, y)).ToList(); }
return Enumerable.Range(1, 3).SelectMany(x => Enumerable.Range(4, 3) .Select(y => new Tuple<int, int>(x, y))).ToList();
Ваша версия выглядит более читабельно: -)
Enumerable.Range(1, 3).SelectMany( i => Enumerable.Range(4, 3), (i, j) => new Tuple<int, int>(i, j) ).ToList();