2016-04-08 114 views
-4

在找這需要將字符串轉換爲int數組到目前爲止,我做了什麼,代碼是:如何將字符串轉換爲int []數組在c#中?

string text = "[1,2]"; 
int[] ia = text.Split(';').Select(n => Convert.ToInt32(n)).ToArray(); 

但我得到的數字格式例外,如何擺脫這種這裏是字符串「[1,2 ]「需要轉換爲[1,2]我怎麼能實現這個可能是愚蠢的問題,但需要解決這個問題。

+3

爲什麼期望Split(「;」)在「[1,2]」上工作?此外,你必須先刪除前導[和結尾]。作爲一個新的c## – Martheen

+0

我怎麼能達到這個 –

+1

是的。常識顯然缺失。最重要的是,他的例子不符合現場規則,因爲它包含大量不相關的代碼,甚至沒有編譯。 Venkat,請把這個垃圾切碎,並儘可能做最小的例子。這意味着:定義一個帶有輸入的字符串,寫入轉換邏輯,將int數組作爲輸出 - 其餘部分對於問題而言是IRRELEVANT。在將工作轉交給其他人之前,請嘗試進行一分鐘的調試 - 尤其是如果您閱讀Martheen的評論,我們確實知道您從未學過編程,只是複製/粘貼。 – TomTom

回答

1

只是使用JsonConvert一塊蛋糕,

int[] arr = JsonConvert.DeserializeObject<int[]>(text); 
-1

用空字符串替換大括號[],然後應用Split函數。

objModellead.ServiceCatalogID 
    .Replace("[","") 
    .Replace("]","") 
    .Split(';') 
    .Select(int.Parse) 
    .ToArray() 
+0

爲什麼要投票?請解釋。 –

0

只要修剪字符串的「[」和「]」,並通過分割「」得到它作爲陣列。 然後使用'Array.ConvertAll'方法將其轉換爲int數組。

string s = "[1,2]"; 
string[] s1 = s.Trim('[', ']').Split(','); 
int[] myArr = Array.ConvertAll(s1, n => int.Parse(n)); 
+0

提示,你可以用int.Parse替換lambda表達式,因爲它完全一樣。 – Martheen