C#中将类的string属性转换为Integer数组时出现报错如何解决
报错原因
- 存在语法拼写错误:代码中
listOfMyValue s=多了多余空格,正确写法为listOfMyValues = - 核心逻辑错误:
Int32.Parse方法只能将整个字符串转换为单个int类型值,单个int值不存在ToArray扩展方法,所以触发该报错。
解决方案
你需要根据myStingId的实际存储格式选择对应实现方式:
场景1:myStingId为纯数字字符串,需拆分每个字符为单独的int元素
示例输入:"12345",预期输出:[1,2,3,4,5]
using System.Linq; using System.Globalization; Myclas myObj = new Myclas(); myObj.myStingId = "12345"; int[] listOfMyValues = myObj.myStingId .Select(c => int.Parse(c.ToString(), CultureInfo.InvariantCulture)) .ToArray();
场景2:myStingId为用分隔符(逗号/空格等)拼接的多个数字串
示例输入:"1,2,3,4,5",预期输出:[1,2,3,4,5]
using System.Linq; using System.Globalization; Myclas myObj = new Myclas(); myObj.myStingId = "1,2,3,4,5"; int[] listOfMyValues = myObj.myStingId .Split(',') // 可根据实际分隔符修改,比如空格就改为Split(' ') .Select(s => int.Parse(s.Trim(), CultureInfo.InvariantCulture)) .ToArray();
可选:兼容非法字符的容错实现
如果字符串中可能存在非数字内容,可使用int.TryParse避免转换抛出异常,自动过滤非法值:
using System.Globalization; using System.Collections.Generic; Myclas myObj = new Myclas(); myObj.myStingId = "1,2,a,4,5"; List<int> resultList = new List<int>(); foreach (var s in myObj.myStingId.Split(',')) { if (int.TryParse(s.Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out int val)) { resultList.Add(val); } } int[] listOfMyValues = resultList.ToArray(); // 转换结果为 [1,2,4,5]
内容的提问来源于stack exchange,提问作者user16821841
相关产品推荐
相关产品推荐

