我已经尝试了几种不同的方式,似乎不能得到我想使用vb.net的结果.
我有一个字符串数组. {“55555”,“44444”,“”}
我需要一个整数数组{55555,44444}
这是一个将数组作为参数发送到水晶报表的wpf页面.
任何帮助是赞赏.
您可以使用
List(Of T).ConvertAll
方法:
Dim stringList = {"123","456","789"}.ToList Dim intList = stringList.ConvertAll(Function(str) Int32.Parse(str))
或与代表
Dim intList = stringList.ConvertAll(AddressOf Int32.Parse)
如果只想使用数组,可以使用Array.ConvertAll method
:
Dim stringArray = {"123","789"} Dim intArray = Array.ConvertAll(stringArray,Function(str) Int32.Parse(str))
哦,我错过了你的样本数据中的空字符串.那么你需要检查一下:
Dim value As Int32 Dim intArray = (From str In stringArray Let isInt = Int32.TryParse(str,value) Where isInt Select Int32.Parse(str)).ToArray
顺便说一下,方法语法中的方法相同,ugly as always in VB.NET:
Dim intArray = Array.ConvertAll(stringArray,Function(str) New With { .IsInt = Int32.TryParse(str,value),.Value = value }).Where(Function(result) result.IsInt). Select(Function(result) result.Value).ToArray