var q = from cn in (from n in a select conversion(n))
from m in b select cn + m;


var q = a.Select((n) => new { n, cn = conversion(n) })
.SelectMany((c)=>b, (d,m)=>d.cn + m);

等価らしいが意味が分からない。dはどこからでてきたのだろうか?