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

在.NET Framework C#中如何去除文本框输入内容中的多余逗号

C# 多数值输入分割转换容错方案

异常原因

你当前的代码抛出异常是因为str.Split(',')遇到连续逗号时,会生成空字符串的数组元素,int.Parse无法处理空字符串,就会触发格式异常。不需要修改原字符串(适配string不可变的特性),直接调整分割逻辑即可解决问题。

解决方案

方案1:快速修复(仅需处理多余逗号、输入全为合法数字的场景)

直接给Split方法传入StringSplitOptions.RemoveEmptyEntries参数,自动过滤分割后产生的所有空字符串,连续逗号、首尾逗号产生的空项都会被直接移除:

array = Array.ConvertAll(str.Split(',', StringSplitOptions.RemoveEmptyEntries), int.Parse);

注:int.Parse本身支持解析带前后空格的数字字符串,用户输入类似"1 , 2 "的内容也可以正常转换。

方案2:全场景容错处理(兼容非法输入、多余空格、非数字内容)

如果需要避免用户输入非数字内容时直接抛出异常,建议结合LINQ和int.TryParse做多层过滤,兼容性更强:

array = str.Split(',', StringSplitOptions.RemoveEmptyEntries)
           .Select(s => int.TryParse(s.Trim(), out int num) ? num : (int?)null)
           .Where(n => n.HasValue)
           .Select(n => n.Value)
           .ToArray();

这个方案的优势:

  • 自动过滤连续逗号产生的空项
  • 自动清理每个数值前后的多余空格
  • 自动跳过所有无法转换为整数的非法输入,不会抛出异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:57:03