我有一个有数字的字符串
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
当前回答
Joze的方法也需要LINQ, ToList()是在系统。Linq命名空间。
你可以将Array转换为List而不需要Linq,通过将数组传递给List构造函数:
List<int> numbers = new List<int>( Array.ConvertAll(sNumbers.Split(','), int.Parse) );
其他回答
Joze的方法也需要LINQ, ToList()是在系统。Linq命名空间。
你可以将Array转换为List而不需要Linq,通过将数组传递给List构造函数:
List<int> numbers = new List<int>( Array.ConvertAll(sNumbers.Split(','), int.Parse) );
也可以通过int数组直接赋值。
像这样
int[] numbers = sNumbers.Split(',').Select(Int32.Parse).ToArray();
当我们有泛型时,为什么只使用int型呢? 那么像这样的扩展方法呢:
public static List<T> Split<T>(this string @this, char separator, out bool AllConverted)
{
List<T> returnVals = new List<T>();
AllConverted = true;
var itens = @this.Split(separator);
foreach (var item in itens)
{
try
{
returnVals.Add((T)Convert.ChangeType(item, typeof(T)));
}
catch { AllConverted = false; }
}
return returnVals;
}
然后
string testString = "1, 2, 3, XP, *, 6";
List<int> splited = testString.Split<int>(',', out _);
在Unity3d上,int。解析工作不太好。所以我用波纹管。
List<int> intList = new List<int>( Array.ConvertAll(sNumbers.Split(','),
new Converter<string, int>((s)=>{return Convert.ToInt32(s);}) ) );
希望这对Unity3d用户有所帮助。
我的问题类似,但有时字符串包含字母(有时为空)。
string sNumbers = "1,2,hh,3,4,x,5";
尝试遵循Pcode Xonos扩展方法:
public static List<int> SplitToIntList(this string list, char separator = ',')
{
int result = 0;
return (from s in list.Split(',')
let isint = int.TryParse(s, out result)
let val = result
where isint
select val).ToList();
}