C#string []到int []

时间:2010-03-03 15:35:28

标签: c# string arrays parsing int

有没有办法将字符串数组转换为int数组,就像在C#中将字符串解析为int一样简单。

int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.

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

关于如何快速而美观地做到这一点的任何想法?

7 个答案:

答案 0 :(得分:17)

这个linq查询应该这样做:

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

答案 1 :(得分:8)

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

应该做得很好。如果您不想要例外,可以修改lambda以使用TryParse。

答案 2 :(得分:6)

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

答案 3 :(得分:3)

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

答案 4 :(得分:3)

使用此:

"123,456".Split(',').Select(s => int.Parse(s)).ToArray()

答案 5 :(得分:3)

我想,就像那样:

string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();

答案 6 :(得分: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