c# - 将字符串数字转换为数字序列 - .Net 2.0

标签 c#

给定一个字符串

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/

相关文章:

C# 如何替换系统托盘时钟

c# - 保存 Microsoft Azure Face API 数据

c# - 如何获取对象列表中包含的所有子对象的列表?

c# - GridView 和DetailsView 更新DetailsView 背后的代码

c# - 测量 C# 代码的可测试性

C# 内存地址扩展与代码

c# - LINQ 查询不返回单个值

c# - Windows 7 跳转列表(Windows 窗体,C#)

javascript - 无法从 HttpListenerRequest 读取 InputStream

c# - 使用 Azure AD OpenIdConnect 和自定义中间件的 ASP NET Core 身份验证中的 Cookie 过期