如何在c#中使用两个列表的笛卡尔连接?

Van*_*ish 29 c# linq

如何将两个带有整数的列表的笛卡尔连接加入其中?

这可以用linq完成吗?

Jon*_*eet 73

假设您的意思是"交叉连接"或"笛卡尔连接":

var query = from x in firstList
            from y in secondList
            select new { x, y }
Run Code Online (Sandbox Code Playgroud)

要么:

var query = firstList.SelectMany(x => secondList, (x, y) => new { x, y });
Run Code Online (Sandbox Code Playgroud)

如果你想要其他东西(正如你从评论中看到的那样,"交叉产品"一词引起了一些混乱),请适当地编辑你的问题.一个例子非常方便:)

  • 适当的术语是"笛卡尔积".希望这是他想要的,我在这个和两个向量的真正交叉产品之间徘徊. (2认同)
  • 那不是矢量积,那是矢量和.矢量乘积仅在三维矢量上定义,因此在任意序列上定义矢量积并没有多大意义. (2认同)

Ros*_*oss 10

为了好奇,另一种实现这一目标的方法(产生与Jon Skeet的答案相同的结果)是:

firstList.Join(secondList, x => true, y => true, (m, n) => new { m, n });
Run Code Online (Sandbox Code Playgroud)