この記事は公開から1年以上経過しています。
.NETのLINQでPythonのitertools.product()
のようにリストや配列の組み合わせ(直積/デカルト積)を作る方法。
対応
LINQのSelectMany()
を使用する。
サンプルソースコード(C#)
var data1 = new[] { "A", "B", "C" };
var data2 = new[] { 1, 2, 3 };
var product = data1.SelectMany(_ => data2, (x, y) => new { x, y });
foreach(var item in product)
Console.WriteLine(item);
出力結果
{ x = A, y = 1 }
{ x = A, y = 2 }
{ x = A, y = 3 }
{ x = B, y = 1 }
{ x = B, y = 2 }
{ x = B, y = 3 }
{ x = C, y = 1 }
{ x = C, y = 2 }
{ x = C, y = 3 }
以上です。