所以我輸入數字,我試圖在不使用任何回圈的情況下將每個數字添加到一個 int 陣列中
在這里我得到了答案
int[] fNum = Array.ConvertAll(num.ToString().ToArray(),x=>(int)x - 48);
我直到 .toarray() 才明白,但我不明白為什么它需要一個新變數 x 和 => (int)x - 48。
誰能給我解釋一下?
uj5u.com熱心網友回復:
因為 0 的 asci 值是 48,而 1 是 49。所以要獲得 char 值 1,您需要執行 49 - 48,這等于 1,其他數字也類似。
您還應該查看
另外,看看了解lambda 運算子和官方檔案。
uj5u.com熱心網友回復:
不使用任何回圈
好吧,我可能會給你一個驚喜。
一個新變數 x
ConvertAll實際上是引擎蓋下的回圈。它遍歷集合。x代表集合中的一個專案。
x=>(int)x - 48
對于集合中的每個專案 x,將其轉換為 int 并減去 48。
此語法是一個lambda 運算式。
uj5u.com熱心網友回復:
num.ToString().ToArray(),x=>(int)x - 48
這段代碼是將一個用數字填充的字串分割成一個字符陣列,將CHAR型別的字符轉換成ASCII值,再轉換成Int值的程序。
CHAR型別的字母'5'是ASCII值53,必須是-48才能轉換為INT型別值5。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535333.html
標籤:C#数组整数数组
