我想建立一個方法或擴展方法這需要多個列表,並將它們結合方式如下:如何在Linq中合併多個相同或不同長度的列表?
可以說我有兩個列表:
int[] list1 = {3, 1, 2};
int[] list2 = {5, 4 };
我希望清單數組作爲這樣的結果:
[1,4]
[1,5]
[2,4]
[2,5]
[3,4]
[3,5]
在我所得陣列的列表中的列的數量就會列表 通過量和b來確定其他列需要排序。 行數只是(列表A的長度)*(列表B的長度)*(列表N的長度)
在這個例子中是3 * 2 = 6行。 2列(因爲2個輸入列表)。
用linq做這件事的一個很好的方法是什麼?
謝謝!
有你甚至試着用普通循環和自然算法先解決這個問題?我絕不會使用LINQ來處理這樣複雜的問題。即使'LINQ'可以爲你做到這一點,它的效率就會比正常循環更低效,更難以理解。 ** LINQ不應該被使用在任何成本**。 –
我同意LINQ可能更難以理解,有時效率更低,但我想了解更多。我想過用正常的循環來解決這個問題,但對LINQ方式感到好奇。我的應用程序不會處理巨大的列表,所以我認爲性能不應該成爲問題。 –
@KingKing:這是一個用LINQ解決的完全合理的問題,一點也不復雜。 2元笛卡爾積實際上是*基礎* LINQ序列操作,'SelectMany'。所有的LINQ操作符都可以用'SelectMany'構建;它是序列monad的綁定操作。 n元笛卡爾積當然更復雜一點。 –