有没有一个很好的LINQ方式来做笛卡尔积?

有没有一个很好的LINQ方式来做笛卡尔积?

我有这样的类结构:

PersonDogs (dog 1, dog 2, etc)Puppies (puppy A, puppy B, etc)

有一个人。他有1只狗。每只狗有1只小狗。

我想要一份所有可能的小狗组合清单,从每只狗身上带一只小狗。例如:

狗1小狗A,狗2小狗狗1小狗A,狗2小狗B狗1小狗B,狗2小狗狗1小狗B,小狗2小狗B

如果它是在sql表中,我会做类似以下的事情来“乘以”表:

select * from puppies a, puppies b where a.parent='dog1' and b.parent='dog2'

是否有一些linq-ish方式来做这种事情???

非常感谢


缥缈止盈
浏览 746回答 3
3回答

千万里不及你

leftSide.SelectMany((l) => rightSide, (l, r) => new Tuple(l, r));这应该是笛卡尔积。

POPMUISE

如果你想要狗和小狗的所有可能的组合,你会做一个交叉连接:from dog in Dogsfrom puppy in Puppiesselect new{     Dog = dog,     Puppy = puppy}
打开App,查看更多内容
随时随地看视频慕课网APP