是否可以使用linq枚举两个IEnumerables的所有排列

Jam*_*Hay 4 c# linq ienumerable permutation

我可以使用循环来做到这一点,但有没有办法获取两个IEnumerables,枚举所有可能的排列并选择一个包含排列的对象?我觉得这应该是"应该",但我不确定要使用哪些操作符.

谢谢詹姆斯

Ant*_*ram 8

你在谈论基本上是笛卡尔式的加入吗?你可以做点什么

var query = from item1 in enumerable1
            from item2 in enumerable2
            select new { Item1 = item1, Item2 = item2 }
Run Code Online (Sandbox Code Playgroud)


Ric*_*lay 5

安东尼的回答是正确的.扩展方法等效于:

var query = enumerable1.SelectMany(
                x => enumerable2,
                (item1, item2) => new { Item1 = item1, Item2 = item2 }
            );
Run Code Online (Sandbox Code Playgroud)

要么

var query = enumerable1.SelectMany(
                item1 => enumerable2.Select(item2 => 
                    new { Item1 = item1, Item2 = item2 });
            );
Run Code Online (Sandbox Code Playgroud)