You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# .NET 3.5中如何将条码数字字符串拆分为int数组

嘿,这个需求不难实现,我给你几个在.NET 3.5里完全能用的方案,看你偏好哪种:

方案1:用LINQ快速搞定(简洁高效)

.NET 3.5已经支持LINQ了,一行代码就能搞定。利用字符的ASCII码特性,数字字符'0'到'9'的ASCII值是连续的,所以用字符减去'0'就能直接得到对应的整数,比int.Parse更高效:

// 假设扫描得到的条码字符串是barcode
string barcode = "1234567890";
int[] digits = barcode.Select(c => c - '0').ToArray();

方案2:传统循环实现(适合新手理解或需要精细控制)

如果你觉得LINQ有点抽象,用普通的for循环或者foreach循环也很容易实现:

string barcode = "1234567890";
int[] digits = new int[barcode.Length];

for (int i = 0; i < barcode.Length; i++)
{
    // 因为你说扫描后是纯数字,直接转就行
    digits[i] = barcode[i] - '0';
    // 也可以用int.Parse,不过效率稍低:digits[i] = int.Parse(barcode[i].ToString());
}

额外补充:处理可能的非数字字符(可选)

虽然你提到扫描结果是纯数字,但如果担心偶尔有异常字符混入,可以加个过滤逻辑:

LINQ版本加过滤:

int[] digits = barcode.Where(char.IsDigit)
                      .Select(c => c - '0')
                      .ToArray();

循环版本加过滤:

List<int> digitList = new List<int>();
foreach (char c in barcode)
{
    if (char.IsDigit(c))
    {
        digitList.Add(c - '0');
    }
}
int[] digits = digitList.ToArray();

这些方法都能完美满足你的需求,选个顺手的用就行!

内容的提问来源于stack exchange,提问作者ImFastAFBOIII

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:32:47