首页 / .NET / 正文

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

4437 发布于: 2018-01-14 读完约需2分钟

.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查询中连接多个查询条件的方式有哪些?

下一篇: .NET[C#]使用LINQ把两个数组集合连接成一个集合有哪些方式?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册