C# 将字符串转换为列表时出现问题
我有一个字符串,看起来像34,45,74,23,是动态生成的。如何将其转换为列表C# 将字符串转换为列表时出现问题,c#,C#,我有一个字符串,看起来像34,45,74,23,是动态生成的。如何将其转换为列表 var y = numString(); y.ToList(); 这应该给你一个清单 如果您不确定所有字符串都可以解析为int,或者字符串包含多个逗号,如23、24、25或无效字符,则可以使用Where首先筛选序列: var numbers = str.Split(',').Where(x => x.All(char.IsDigit)).Select(int.Parse); 或者您可以使用TryParse
var y = numString();
y.ToList();
这应该给你一个清单
如果您不确定所有字符串都可以解析为int,或者字符串包含多个逗号,如23、24、25或无效字符,则可以使用Where首先筛选序列:
var numbers = str.Split(',').Where(x => x.All(char.IsDigit)).Select(int.Parse);
或者您可以使用TryParse:
很可能,TryParse是最好的选择,因为它对所有数字都返回true,而不仅仅是0-9。这应该对您有用
string source = "34,45,74,23";
var stringArray = source.Split(',');
var intArray = stringArray.Select(x => Convert.ToInt32(x)).ToList();
使用Linq:
var numbers = y.Split(',').Select(num => int.Parse(num)).ToList();
如果您确定格式有效,则可以使用,并且使用更高效的格式:
string[] numbers = "34,45,74,23".Split(',');
var list = new List<int>(Array.ConvertAll(numbers, int.Parse));
那是34,45和74,23吗?
var numbers = y.Split(',').Select(num => int.Parse(num)).ToList();
string[] numbers = "34,45,74,23".Split(',');
var list = new List<int>(Array.ConvertAll(numbers, int.Parse));