using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// LINQで二次元ジャグ配列をコピーする
namespace Linq2ch918
{
class Program
{
static void Main(string[] args)
{
int[][] a1 = { new int[]{ 1, 2, 3 }, new int[]{ 4, 5 }, new int[]{ 6, 7, 8, 9, 10 } };
int[][] a2 = { new int[3], new int[2], new int[5] };
Enumerable.Range(0, a1.Length).SelectMany(i => Enumerable.Range(0, a1[i].Length), (x, y) => new { x, y })
.Select(xy => new { xy.x, xy.y }).Select(xy => { return a2[xy.x][xy.y] = a1[xy.x][xy.y]; }).ToList(); // 即時実行
foreach (var i in a2) {
foreach (var j in i)
Console.Write(j + " ");
Console.WriteLine();
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKLy8gTElOUeOBp+S6jOasoeWFg+OCuOODo+OCsOmFjeWIl+OCkuOCs+ODlOODvOOBmeOCiwoKbmFtZXNwYWNlIExpbnEyY2g5MTgKewogIGNsYXNzIFByb2dyYW0KICB7CiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgIGludFtdW10gYTEgPSB7IG5ldyBpbnRbXXsgMSwgMiwgMyB9LCBuZXcgaW50W117IDQsIDUgfSwgbmV3IGludFtdeyA2LCA3LCA4LCA5LCAxMCB9IH07CiAgICAgIGludFtdW10gYTIgPSB7IG5ldyBpbnRbM10sIG5ldyBpbnRbMl0sIG5ldyBpbnRbNV0gfTsKICAgICAgRW51bWVyYWJsZS5SYW5nZSgwLCBhMS5MZW5ndGgpLlNlbGVjdE1hbnkoaSA9PiBFbnVtZXJhYmxlLlJhbmdlKDAsIGExW2ldLkxlbmd0aCksICh4LCB5KSA9PiBuZXcgeyB4LCB5IH0pCiAgICAgICAgLlNlbGVjdCh4eSA9PiBuZXcgeyB4eS54LCB4eS55IH0pLlNlbGVjdCh4eSA9PiB7IHJldHVybiBhMlt4eS54XVt4eS55XSA9IGExW3h5LnhdW3h5LnldOyB9KS5Ub0xpc3QoKTsgLy8g5Y2z5pmC5a6f6KGMCiAgICAgIGZvcmVhY2ggKHZhciBpIGluIGEyKSB7CiAgICAgICAgZm9yZWFjaCAodmFyIGogaW4gaSkKICAgICAgICAgIENvbnNvbGUuV3JpdGUoaiArICIgIik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKICAgICAgfQogICAgfQogIH0KfQ==