C# 将字符串插入列表<;int>;

C# 将字符串插入列表<;int>;,c#,string,list,split,C#,String,List,Split,可能重复: 我有一个字符串,它来自一个数字文本框,如下所示:2670053157。我应该如何拆分字符串的每个字符并将它们插入列表元素 var list = numberString.Select(c => Int32.Parse(c.ToString())).ToList(); 或者,如果您希望添加到现有列表中: list.AddRange(numberString.Select(c => Int32.Parse(c.ToString())); var list=newlist

可能重复:

我有一个字符串,它来自一个数字
文本框,如下所示:
2670053157
。我应该如何拆分字符串的每个字符并将它们插入
列表
元素

var list = numberString.Select(c => Int32.Parse(c.ToString())).ToList();
或者,如果您希望添加到现有列表中:

list.AddRange(numberString.Select(c => Int32.Parse(c.ToString()));
var list=newlist();
list.AddRange(
从数字字符串中的字符
选择int.Parse(字符));
List numericlist=“2670053157”。选择(c=>c-“0”).ToList();

如果您担心由于不正确的输入而引发异常,您可以选择安全的方法:

// 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);
    }
}
//字符串输入=TextBox1.Text;
List intList=新列表();
foreach(输入中的字符c)
{
int i;
if(Int32.TryParse(c.ToString(),out i))
{
添加(i);
}
}

从助手方法开始:

public static IEnumerable<short> getDigits(long input)
{
    while (input > 0)
    {
        yield return (short)(input % 10);
        input /= 10;
    }
}
如果您希望先使用高阶位,则需要
反转序列:

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

你在那里做了什么<代码>c-“0”
@Silvermind-字符是整数。从“2”(50)中提取“0”(48)将得到2。我不建议这样做的唯一原因是它不能正确处理字符串中有非数字字符的情况。@JustinNiessner谢谢,今天学习了一些新的逻辑。@JustinNiessner在不需要异常的情况下它会很好(Int.Parse将引发异常,而Int.TryParse不适合linq)
public static IEnumerable<short> getDigits(long input)
{
    while (input > 0)
    {
        yield return (short)(input % 10);
        input /= 10;
    }
}
List<short> list = getDigits(2670053157).ToList();
List<short> list = getDigits(2670053157).Reverse().ToList();