2015-01-12 57 views
0

我在C#這以下的數組:單獨陣列中的子陣列在C#

string[][] arrayofArrays = getArray(); 

我知道這是在arrayofArrays陣列具有2.我的問題的長度如下:是有可能在兩個數組中「拆分」或「分離」主數組?

謝謝。

編輯:我想知道是否有一種已經在C#中實現的方法,我知道如何用算法做到這一點。

編輯2:這裏是什麼,我需要一個例子:

// here are the data: 
string[][] arrayofArrays = {{"1", "a"}, {"2", "b"}, {"3", "c"}}; 

//here is what I need as output: 
string[] array1 = {"1", "2", "3"}; 
string[] array2 = {"a", "b", "c"}; 
+0

作爲聲明還是作爲過程/算法? – DrKoch

+0

拆分它如何?基於什麼標準? –

+0

你有一個2D數組,你想把它分成2個單維數組? – Rohit

回答

5

如果我理解你的權利,你可以這樣做:

string[] firstArray=Array.ConvertAll(arrayofArrays,a => a[0]); 
string[] secondArray=Array.ConvertAll(arrayofArrays,a => a[1]); 
1

對於它的價值,這LINQ查詢應該做你想要什麼:

int numArrays = 2; 
string[][] arrayofTwoArrays = arrayofArrays 
    .Select((arr, index) => new { arr, index }) 
    .GroupBy(x => (x.index + 1) % numArrays, x => x.arr) 
    .Select(g => g.SelectMany(x => x).ToArray()) 
    .ToArray(); 
3

還有一變:

var array1 = arrayOfArrays.Select(a => a[0]).ToArray(); 
var array2 = arrayOfArrays.Select(a => a[1]).ToArray();