2014-01-17 69 views
1

我還有一個問題。如何基於參數將字符串數組轉換爲另一個字符串數組?將字符串數組轉換爲基於參數的另一個字符串數組

string[] x={ "A", "B", "C", "D", "E", "F", "G" }; 
string[] y=new string[number]; 

for(int I=0;i<number;i++) 
{ 
y=x[i]; 
} 

上面的實現顯示錯誤。

如果參數號是3,那麼數組y應該有A,B,C,D。

基本參數的基礎上,我想生成從父陣列

另一個數組我知道這個問題是不是太高科技,但我不能繞過它。

幫助將不勝感激。

問候

阿努拉格

回答

2

它顯示了,因爲你已經聲明int I,而是試圖訪問i也,你需要使用索引來訪問y錯誤:

string[] x={ "A", "B", "C", "D", "E", "F", "G" }; 
string[] y=new string[number]; 

for(int i=0;i<number;i++) 
{ 
    y[i] = x[i]; 
} 

將正常工作,但您可能需要通過遞增number一個,如果你想數爲3還存儲所述第一4個值...

+0

謝謝Mr.Graham ..現在我明白了..它不是一個區分大小寫的情況。訪問y時,我沒有使用'i'作爲索引參數。傻我...... – Anurag

2

沒有必要爲循環。可以用LINQ

string[] y = x.Select(item => item).Take(number+1).ToArray(); 
+0

這不是最有效的方法。然而,它的優點是你不需要關心數字+ 1大於x大小。 – Cosmin

+0

@Cosmin,OP沒有提到這件事。如果是這種情況,for循環可能會拋出異常。他應該檢查號碼 –

+0

謝謝...我會嘗試解決方案 – Anurag

4

Array.Copy具有稱爲Array.Copy Method (Array, Array, Int32)

份數的範圍內的陣列開始在所述第一元件 元件的過載做到這一點,它們粘貼到另一個數組以第一個元素。

Array.Copy(x, y, number + 1); 

對於一個完整的示例;

string[] x = { "A", "B", "C", "D", "E", "F", "G" }; 
string[] y = new string[4]; 
Array.Copy(x, y, 4); 
foreach (var item in y) 
{ 
    Console.WriteLine(item); 
} 

輸出將;

A 
B 
C 
D 

這裏一個demonstration

+0

謝謝..我不知道Array.Copy方法。 – Anurag

+0

@Auurag你很受歡迎。 –

+0

完成Mr.Soner ..感謝您 – Anurag

0

首先,需要更大的數組,如果數= 3應該給你A,B,C,d

string[] x={ "A", "B", "C", "D", "E", "F", "G" }; 
string[] y=new string[number+1]; 

並使用Array.Copy複製的元素

Array.Copy(x, y, number+1);