2013-05-25 103 views
0

我需要一種方法來預先添加項目到一個現有的字符串數組,使得:將項目添加到字符串數組

string[] dirParams = null; 

if (Request.Params["locationDirection_0"] != "") 
{ 
    dirParams = Request.Params["locationDirection_0"].Split(','); 
} 

if (Request.Params["locationDirection_1"] != "") 
{ 
    dirParams = Request.Params["locationDirection_1"].Split(','); 
} 

if (Request.Params["locationDirection_2"] != "") 
{ 
    dirParams = Request.Params["locationDirection_2"].Split(','); 
} 

if (Request.Params["locationDirection_3"] != "") 
{ 
    dirParams = Request.Params["locationDirection_3"].Split(','); 
} 

會給我的約4項的字符串數組(請求的假設沒有到來在空)

最簡單的方法是什麼,我想使用列表和或dictonary,既不會爲我想要做的工作,字符串數組是我想要的。

+2

爲什麼不使用List,然後轉換爲數組? –

+0

你的意思是prepend?或者你是否真的要追加? –

回答

0

使用List<string>,然後使用ToArray()方法將其轉換爲string[]

2

使用列表來代替:

 List<string> dirParams = new List<string>(); 

     if (Request.Params["locationDirection_0"] != "") 
     { 
      dirParams.AddRange(Request.Params["locationDirection_0"].Split(',')); 
     } 

     if (Request.Params["locationDirection_1"] != "") 
     { 
      dirParams.AddRange(Request.Params["locationDirection_1"].Split(',')); 
     } 

     if (Request.Params["locationDirection_2"] != "") 
     { 
      dirParams.AddRange(Request.Params["locationDirection_2"].Split(',')); 
     } 

     if (Request.Params["locationDirection_3"] != "") 
     { 
      dirParams.AddRange(Request.Params["locationDirection_3"].Split(',')); 
     } 
0

構建您的項目在List<string>然後使用LINQ的.ToArray()把它轉換成一個陣列。

+0

請注意['List.ToArray()'](http://msdn.microsoft.com/en-us/library/x303t819.aspx)不是LINQ的組件。 – VisualMelon

0

如何使用Linq?

var dirParam = Enumerable.Range(0, 4) 
       .Select(i => Request.Params["locationDirection_" + i]) 
       .Where(s => !String.IsNullOrEmpty(s)) 
       .SelectMany(s => s.Split(',')) 
       .ToArray();