gpt4 book ai didi

c# - 使用 LINQ 在一行代码中将 string[] 转换为 int[]

转载 作者:IT王子 更新时间:2023-10-29 03:28:54 28 4
gpt4 key购买 nike

我有一个字符串形式的整数数组:

var arr = new string[] { "1", "2", "3", "4" };

我需要一个“真实”整数数组来进一步插入它:

void Foo(int[] arr) { .. }

我尝试转换 int 但它当然失败了:

Foo(arr.Cast<int>.ToArray());

接下来我可以做:

var list = new List<int>(arr.Length);
arr.ForEach(i => list.Add(Int32.Parse(i))); // maybe Convert.ToInt32() is better?
Foo(list.ToArray());

var list = new List<int>(arr.Length);
arr.ForEach(i =>
{
int j;
if (Int32.TryParse(i, out j)) // TryParse is faster, yeah
{
list.Add(j);
}
}
Foo(list.ToArray());

但两者看起来都很丑。

还有其他方法可以完成任务吗?

最佳答案

给定一个数组,你可以使用 Array.ConvertAll method :

int[] myInts = Array.ConvertAll(arr, s => int.Parse(s));

感谢 Marc Gravell 指出 lambda 可以省略,生成如下所示的较短版本:

int[] myInts = Array.ConvertAll(arr, int.Parse);

LINQ 解决方案类似,只是您需要额外的 ToArray 调用来获取数组:

int[] myInts = arr.Select(int.Parse).ToArray();

关于c# - 使用 LINQ 在一行代码中将 string[] 转换为 int[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com