给定一个字符串
string result = "01234"
我想从字符串中获取单独的整数 0,1,2,3,4。
怎么做?
1
以下代码为我提供了 ascii 值
List<int> ints = new List<int>();
foreach (char c in result.ToCharArray())
{
ints.Add(Convert.ToInt32(c));
}
最佳答案
编辑:我没有发现“.NET 2.0”要求。如果你要做很多这样的事情,可能值得使用 LINQBridge ,并查看后面的部分 - 特别是如果您可以在仍以 2.0 为目标的情况下使用 C# 3.0。否则:
List<int> integers = new List<int>(text.Length);
foreach (char c in text)
{
integers.Add(c - '0');
}
不是很整洁,但它会工作。或者:
List<char> chars = new List<char>(text);
List<int> integers = chars.ConvertAll(delegate(char c) { return c - '0'; });
或者如果您对数组感到满意:
char[] chars = text.ToCharArray();
int[] integers = Arrays.ConvertAll<char, int>(chars,
delegate(char c) { return c - '0'; });
原始答案
其他一些人建议使用 ToCharArray
.你不需要这样做 - string 已经实现了 IEnumerable<char>
,因此您已经可以将其视为一个字符序列。然后,您只需要将每个字符数字转换为整数表示即可;最简单的方法是减去字符“0”的 Unicode 值:
IEnumerable<int> digits = text.Select(x => x - '0');
如果你想在 List<int>
中使用它相反,只要这样做:
List<int> digits = text.Select(x => x - '0').ToList();
关于c# - 将字符串数字转换为数字序列 - .Net 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437797/