我有一个有数字的字符串
string sNumbers = "1,2,3,4,5";
我可以拆分它,然后将其转换为List<int>
sNumbers.Split( new[] { ',' } ).ToList<int>();
如何将字符串数组转换为整数列表? 这样我就可以将string[]转换为IEnumerable
我有一个有数字的字符串
string sNumbers = "1,2,3,4,5";
我可以拆分它,然后将其转换为List<int>
sNumbers.Split( new[] { ',' } ).ToList<int>();
如何将字符串数组转换为整数列表? 这样我就可以将string[]转换为IEnumerable
当前回答
你可以使用新的c# 6.0语言特性:
替换委托(s) =>{返回Convert.ToInt32(s);}, 对应的方法组转换。ToInt32 将多余的构造函数调用:new Converter<string, int>(Convert. toint32) with: Convert. toint32ToInt32
结果将是:
var intList = new List<int>(Array.ConvertAll(sNumbers.Split(','), Convert.ToInt32));
其他回答
也可以通过int数组直接赋值。
像这样
int[] numbers = sNumbers.Split(',').Select(Int32.Parse).ToArray();
你可以使用新的c# 6.0语言特性:
替换委托(s) =>{返回Convert.ToInt32(s);}, 对应的方法组转换。ToInt32 将多余的构造函数调用:new Converter<string, int>(Convert. toint32) with: Convert. toint32ToInt32
结果将是:
var intList = new List<int>(Array.ConvertAll(sNumbers.Split(','), Convert.ToInt32));
在Unity3d上,int。解析工作不太好。所以我用波纹管。
List<int> intList = new List<int>( Array.ConvertAll(sNumbers.Split(','),
new Converter<string, int>((s)=>{return Convert.ToInt32(s);}) ) );
希望这对Unity3d用户有所帮助。
你也可以这样做,而不需要Linq:
List<int> numbers = new List<int>( Array.ConvertAll(sNumbers.Split(','), int.Parse) );
// Uses Linq
var numbers = Array.ConvertAll(sNumbers.Split(','), int.Parse).ToList();
最好使用int。TryParse避免异常;
var numbers = sNumbers
.Split(',')
.Where(x => int.TryParse(x, out _))
.Select(int.Parse)
.ToList();