将C#中的string[]转换为int[]

8
有没有一种像在C#中将字符串解析为整数那样简单地将字符串数组转换为整数数组的方法?
int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.

我尝试使用int类的扩展方法来添加此功能,但它们不会变成静态的。

有什么快速简便的方法吗?


1
LINQ应该允许您在一行代码中完成此操作。或者可以使用Lambda表达式。 - Paul Sasik
2
你在提问之前尝试过搜索这个网站吗? - Mark Seemann
7个回答

18

这个Linq查询应该可以解决问题:

strArray.Select(s => int.Parse(s)).ToArray()

8
int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));

应该没问题。如果您不想使用异常,可以修改lambda以使用TryParse。


1
Array.ConvertAll 绝对比 LINQ 的 ToArray() 更少需要重新分配内存。请注意,在这种情况下,您甚至不需要一个 lambda,可以将 Int32.Parse 作为 ConvertAll 的第二个参数传递。 - Ben Voigt

6
int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();

3
123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();

3
使用这个:
"123,456".Split(',').Select(s => int.Parse(s)).ToArray()

3
我认为,就像这样:
string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();

2

以下是扩展方法。由于无法向字符串添加静态函数,因此在字符串上执行。

public static int[] ToIntArray(this string value)
{
    return value.Split(',')
        .Select<string, int>(s => int.Parse(s))
        .ToArray<int>();
}

以下是如何使用它的方法

string testValue = "123, 456,789";

int[] testArray = testValue.ToIntArray();

这里假设您想要按“,”拆分,如果不是这样,您就必须更改ToIntArray函数。

2
非常棒,正是我所需要的。谢谢! - Refracted Paladin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接