我想要一个解决方案将输入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