簡體   English   中英

如何在 C# 中對兩個列表進行笛卡爾連接?

[英]How do I take the Cartesian join of two lists in c#?

如何對兩個包含整數的列表進行笛卡爾連接?

這可以用linq完成嗎?

假設您的意思是“交叉連接”或“笛卡爾連接”:

var query = from x in firstList
            from y in secondList
            select new { x, y }

或者:

var query = firstList.SelectMany(x => secondList, (x, y) => new { x, y });

如果您想要其他東西(正如您從評論中看到的那樣,“交叉產品”一詞引起了一些混亂),請適當地編輯您的問題。 一個例子會非常方便:)

出於好奇,實現此目的的另一種方法(產生與 Jon Skeet 的答案相同的結果)是:

firstList.Join(secondList, x => true, y => true, (m, n) => new { m, n });

如果你不喜歡查詢語法(比如我自己), MoreLINQ為它提供了一種簡潔的方法,在我看來:

using MoreLinq;

// ....

firstList.Cartesian(secondList, (x, y) => new { x, y });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM