我想要一個解決方案將輸入int say 010轉換爲int {0,1,0}列表。 下面是我嘗試過的代碼,直到遇到0。如何將int轉換爲列表<int>
Int num = 010;
List<int> listOfInt = new List<int>();
While(num > 0)
listOfInt.Add(num%10);
num/= 10;
我只是想分割輸入的int並將其轉換爲int列表。 LINQ很好,如果這可能是有效的! 謝謝!
我想要一個解決方案將輸入int say 010轉換爲int {0,1,0}列表。 下面是我嘗試過的代碼,直到遇到0。如何將int轉換爲列表<int>
Int num = 010;
List<int> listOfInt = new List<int>();
While(num > 0)
listOfInt.Add(num%10);
num/= 10;
我只是想分割輸入的int並將其轉換爲int列表。 LINQ很好,如果這可能是有效的! 謝謝!
正如其他已經提到010
相同10
當已經解析爲int
。但是,例如,您可以將您的號碼作爲字符串來自控制檯輸入。
string myNumber = "010";
這可以在每一個字符很容易使用LINQ分裂:
var intList = myNumber.Select(x => Convert.ToInt32(x.ToString())).ToList();
由於每個字符在內部是一個int
其中'0'
等於49
你必須每一個字符轉換爲字符串,這之前是通過使用ToString
完成。
Console.WriteLine("Enter a number:")
var input = Console.ReadLine();
List<int> result = input.Select(c => int.Parse(c.ToString())).ToList();
string num = "010";
List<int> listOfInt = new List<int>();
foreach(char item in num)
{
listOfInt.Add(Convert.ToInt32(item.ToString()));
}
沒有轉換意味着你會得到一個int字符代碼列表 –
在添加之前不需要從char到int的轉換它列出。 iirc,沒有從'char'到'int'的隱式轉換 –
隱式地'(int)'1''是49 –
在計算機算術或現實生活中,010和10之間沒有區別。零是零。
如果你想將數字轉換爲特定字符串格式和提取字符,執行相同的步驟聲明:
10.ToString("000").Select(c=>c-48).ToList();
結果是與數字0,1,0的列表。
表達式c-48
利用了字符本質上是整數,數字從0開始向上的優勢。所以圖48是0,1是49等
如果輸入是一個字符串,例如"10"
你就必須用0墊之達到所希望的長度:
"10".PadLeft(3,'0').Select(c=>c-48).ToList()
其結果將是0,1,0
再次。
如果畢竟您只想從paddes字符串中檢索字符,那麼您只需要填充字符串,因爲字符串是的一個IEnumerable。您可以將字符複製到陣列String.ToCharArray()或列表爲前:
"10".PadLeft(3,'0').ToList()
LINQ並不認同這一 – Hemal
'010'處理絕不是int順便說一句,'010'是'10'時爲代表一個整數,前導零不可恢復。 –
你可能會丟失'{'和'}' – Valentin