.NET[C#]使用一行LINQ语句实现字符串数组(string[])到数字数组(int[])的转换?
问题描述
比如需有如下的字符串数组:
var arr = new string[] { "1", "2", "3", "4" };
如何使用一行LINQ语句实现字符串数组(string[])到数字数组(int[])的转换呢?
方案一
使用 Array.ConvertAll() 方法:
int[] myInts = Array.ConvertAll(arr, s => int.Parse(s));
或者更简洁的写法:
int[] myInts = Array.ConvertAll(arr, int.Parse);
方案二
int[] myInts = arr.Select(int.Parse).ToArray();
方案三
string[] arr = { null, " ", " 1 ", " 002 ", "3.0" };
int i = 0;
var a = (from s in arr where int.TryParse(s, out i) select i).ToArray(); // a = { 1, 2 }
或者
var a = arr.SelectMany(s => int.TryParse(s, out i) ? new[] { i } : new int[0]).ToArray();
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册