如何将int转换为List <int>

时间:2017-02-10 12:10:26

标签: c#

我想要一个解决方案将输入int 010转换为int {0,1,0}的列表。 下面是我试过的代码,一直工作到0。

Int num = 010;
List<int> listOfInt = new List<int>();
While(num > 0)
listOfInt.Add(num%10);
num / = 10;

我只想拆分输入的int并将其转换为int列表。 LINQ很好,如果这可能是有效的! 谢谢!

4 个答案:

答案 0 :(得分:6)

正如其他人已经提到的010在解析为10时与int相同。但是,您可以将您的数字作为字符串来自控制台输入,例如。

string myNumber = "010";

使用LINQ:

可以很容易地在每个角色上进行分割
var intList = myNumber.Select(x => Convert.ToInt32(x.ToString())).ToList();

由于每个字符都在int内部'0'等于49,因此您必须将每个字符转换为字符串,然后才能使用ToString

答案 1 :(得分:2)

在计算机算术或现实生活中,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字符串中检索字符,则只需要填充,因为String 是IEnumerable。您可以将字符复制到String.ToCharArray()的数组,也可以像以前一样复制到List:

"10".PadLeft(3,'0').ToList()

答案 2 :(得分:1)

Console.WriteLine("Enter a number:")
var input = Console.ReadLine();

List<int> result = input.Select(c => int.Parse(c.ToString())).ToList();

答案 3 :(得分:1)

string num = "010";
List<int> listOfInt = new List<int>();
foreach(char item in num)
{
  listOfInt.Add(Convert.ToInt32(item.ToString()));
}