2014-10-29 54 views
0

我在C#代碼,我想從陣列只返回一個項目,我目前擁有的是,它返回所有的結果如下:C#陣列特定值

1 This transaction has been approved. 
    2 NRO6CL 
    3 Y 
    4 2223032442 
    5 Sample Transaction 
    6 19.99 
    7 CC 

所有我需要的要做的是,從陣列中獲得19.99。並非如上所示那樣在數組中的所有內容。下面的代碼顯示數組中的所有元素。

Array response_array = post_response.Split('|'); 
    resultSpan.InnerHtml += "<OL> \n"; 
    foreach (string value in response_array) 
    { 
     resultSpan.InnerHtml += "<LI>" + value + "&nbsp;</LI> \n"; 
    } 
    resultSpan.InnerHtml += "</OL> \n"; 
+0

你是否聲明瞭你的數組的大小? – Rahul 2014-10-29 04:59:22

+0

數組索引從0開始,因此'response_array [6]'實際上指向'CC' – Shadow 2014-10-29 05:01:43

+0

謝謝,即使我得到相同的錯誤錯誤無法對[System]類型的表達式應用索引。 Array' – user3345212 2014-10-29 05:40:50

回答

4

這個問題不清楚,看似自相矛盾。如果只希望結果中有一個元素,爲什麼要有foreach循環?至少,你應該使用強類型的string[]而不是Array。這就是說,這個版本的代碼,可能會爲你工作:

string[] response_array = post_response.Split('|'); 
resultSpan.InnerHtml += "<OL> \n"; 
resultSpan.InnerHtml += "<LI>" + response_array[6] + "&nbsp;</LI> \n"; 
resultSpan.InnerHtml += "</OL> \n"; 

如果不解決您的問題,您應該改善的問題通過更具體的,而且還包括任何警告或錯誤的確切文本你得到。

編輯:如果您的原始數據示例顯示調用Split()的全部結果(即您錯誤編號了數組索引),請使用5作爲數組索引而不是6

+2

@JeanF .:我非常不同意使用「var」的建議。在推斷的類型從閱讀代碼不明顯的上下文中使用「var」在良好可讀的C#代碼中沒有地位。我更喜歡.NET的命名約定,但我寧願不要通過改變提問者的變量名稱來進一步使問題更加混亂。 – 2014-10-29 05:07:46

+0

我理解你的觀點,但string.Split顯然返回一個字符串[]。類型可以很容易推斷。使用「var」會使代碼更易於維護,並且不會影響可讀性。更清晰和StyleCop似乎同意我的觀點,但我認爲這兩個考慮都是正確的。 – 2014-10-29 05:39:10

+0

您好,先生,謝謝您的回答,我正在創建以下錯誤:錯誤\t 6無法對[] System.Array'類型的表達式應用索引' – user3345212 2014-10-29 05:39:35