0

可能重复:
将字符串解析为 int 数组

我有来自这样的数字的字符串textbox2670053157。我应该如何拆分字符串的每个字符并将它们插入List<int>元素中?

4

5 回答 5

6
var list = numberString.Select(c => Int32.Parse(c.ToString())).ToList();

或者,如果您想添加到现有列表:

list.AddRange(numberString.Select(c => Int32.Parse(c.ToString()));
于 2012-10-25T17:12:00.563 回答
5
var list = new List<int>();

list.AddRange(
    from character in numericString
    select int.Parse(character));
于 2012-10-25T17:12:32.660 回答
5
 List<int> numericlist = "2670053157".Select(c => c - '0').ToList();
于 2012-10-25T17:16:36.947 回答
1

如果您担心由于输入不当而引发异常,您总是可以走安全的路线:

// string input = TextBox1.Text;
List<int> intList = new List<int>();

foreach (char c in input)
{
    int i;
    if (Int32.TryParse(c.ToString(), out i))
    {
        intList.Add(i);
    }
}
于 2012-10-25T17:36:23.967 回答
1

从辅助方法开始:

public static IEnumerable<short> getDigits(long input)
{
    while (input > 0)
    {
        yield return (short)(input % 10);
        input /= 10;
    }
}

然后,如果您想要列表中的值,只需调用ToList

List<short> list = getDigits(2670053157).ToList();

如果您首先需要高阶位,Reverse则需要序列:

List<short> list = getDigits(2670053157).Reverse().ToList();
于 2012-10-25T18:03:50.877 回答