号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

.NET[C#]使用一行LINQ语句实现字符串数组(string[])到数字数组(int[])的转换?

.NET 作者: Rector 340阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

.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();

阅读了该文章的人还浏览了...

本文永久链接码友网 » .NET[C#]使用一行LINQ语句实现字符串数组(string[])到数字数组(int[])的转换?

发布于: 2018-01-14 13:12:31
分享扩散:

文章评论

获取验证码