2015-09-02 153 views
0

的所有組合我有2D陣列[,]。我想多列一個元素兩列由三個所有可能的組合列,並把它變成新的一維數組可以說 每一列包含4個元素,因此它包含組合中的所有列數組大小4 * 4 * 4的乘法的頂尖陣列= 64(所有組合)。C#2D陣列

ans[0]=array[0,0]*array[0,1]*array[0,2] 
ans[1]=array[0,0]*array[0,1]*array[1,2] 
ans[2]=array[0,0]*array[0,1]*array[2,2] 
. 
. 
. 
ans[64]=..... 

將會很感激,如果你能幫助這對我來說 感謝。

+2

這僅僅是一個基本的理論問題。你可以研究谷歌。 –

+0

@RuchiRahulDoshi一種苛刻... –

+0

@AdamBuchananSmith我沒有故意要苛刻提問,如果有這個詞似乎這樣,道歉!!!! –

回答

1

對於所有組合的2切片數量權力分爲3組位將給你的索引的所有組合。樣品4 * 4 * 4:

var result = Enumerable.Range(0,64) 
    .Select(id => 
     array[(id & 0x18) >> 4, 0] * // bits 4,5 
     array[(id & 0x0C) >> 2, 1] * // bits 2,3 
     array[(id & 0x03) >> 0, 2]) // bits 0,1 
    .ToArray(); 

否則標準 「得到所有組合」 的方式將工作 - 即Combination Generator in Linq