C#とLINQで直積集合
C#をかじり始めました。LINQがなかなか面白そうだったので、試しに直積集合を作ってみました。
直積集合とは2つの集合$A, B$から次のように作られる集合です:
\left\{ (a, b) \mid {a \in A} \wedge {b \in B} \right\}
ペアの集合だけではつまらないので、九九表を出力するプログラムにしました:
Test.cs
using System;
using System.Linq;
public class Test
{
public static void Main()
{
var e = Enumerable.Range(1, 9);
var qq = from n in e from m in e select new {x = n, y = m, z = n*m};
foreach (var x in qq) Console.WriteLine(x.ToString());
}
}
from
を2つ重ねています。このクエリ式は下のSelectMany
拡張メソッドを使用した式と等価なようです。
Test.cs
using System;
using System.Linq;
public class Test
{
public static void Main()
{
var e = Enumerable.Range(1, 9);
var qq = e.SelectMany(n => e, (n, m) => new { x = n, y = m, z = n * m });
foreach (var x in qq) Console.WriteLine(x.ToString());
}
}
以上。
Author And Source
この問題について(C#とLINQで直積集合), 我々は、より多くの情報をここで見つけました https://qiita.com/shinaisan/items/d57bc231ac0a9a340184著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .