可能重复:
将字符串解析为 int 数组
我有来自这样的数字的字符串textbox
:2670053157
。我应该如何拆分字符串的每个字符并将它们插入List<int>
元素中?
可能重复:
将字符串解析为 int 数组
我有来自这样的数字的字符串textbox
:2670053157
。我应该如何拆分字符串的每个字符并将它们插入List<int>
元素中?
var list = numberString.Select(c => Int32.Parse(c.ToString())).ToList();
或者,如果您想添加到现有列表:
list.AddRange(numberString.Select(c => Int32.Parse(c.ToString()));
var list = new List<int>();
list.AddRange(
from character in numericString
select int.Parse(character));
List<int> numericlist = "2670053157".Select(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);
}
}
从辅助方法开始:
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();