2012-02-14 58 views
0

我一直在使用的TryParse

int.TryParse(_dtPOSettings.Rows[0]["PASID"].ToString(), out categoryID); 

獲得字符串值轉換爲int通過多個值。當PASID值是單個值時,這工作正常。 現在我在數據庫中存儲多個值作爲','分離列表。當我把它們拿回來時,我將它們分開並將它們存儲到一個字符串數組中。現在我想要int.TryParse獲取字符串數組的值,並將它們轉換爲int值並將它們放回到一個int類型的列表中。 但是出來的參數不支持這個。請建議如何編碼。

int.TryParse(PASIDValues[i].ToString(), out PASIDintValues[i]); 

在此先感謝。

+0

循環遍歷字符串數組和tryParse每個元素;其結果將進入您的清單。 – andrew 2012-02-14 06:34:56

+0

'「1,2,3,4,5」.Split(',')。Select(n => Convert.ToInt32(n))。ToList()' – 2012-02-14 08:01:24

回答

2

簡單地聲明一個變量來暫時保存值,如果解析成功,將值分配給數組索引

int temp = 0; 

if(int.TryParse(PASIDValues[i].ToString(), out temp)) 
    PASIDintValues[i] = temp; 
+0

+1 - 1:58在我和額外的'e'沒有什麼區別。 ;) – 2012-02-14 06:38:03

1

一定要實例化值的完整長度您打算存儲爲的結果你轉換,並使用臨時變量從int.TryParse獲取值。

int[] PASIDintValues = new int[PASIDValues.Count()]; 
for(int i = 0; i < PASIDValues.Count() - 1; i ++) 
{ 
    int tmp = 0; 
    if(int.TryParse(PASIDValues[i].ToString(), out tmp)) 
     results[i] = tmp; 
} 
0

你不能讓一個List元素的引用,但你可以做一個數組元素。只需要PASIDintValues是一個數組而不是一個列表,它應該可以工作。

+0

[Int32.TryParse](http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx)的重載是否將數組作爲其out參數? – 2012-02-14 06:41:54

+0

@ M.Babcock:你不會傳遞一個數組到'TryParse',你傳遞一個元素的引用:'int.TryParse(PASIDValues [i] .ToString(),out PASIDintValues [i]);'where' PASIDintValues'是一個'int []'。 – Gabe 2012-02-14 06:56:30