Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#字符串[]到int[]_C#_String_Arrays_Parsing_Int - Fatal编程技术网

C#字符串[]到int[]

C#字符串[]到int[],c#,string,arrays,parsing,int,C#,String,Arrays,Parsing,Int,有没有一种方法可以像在C#中将字符串解析为int一样简单地将字符串数组转换为int数组 我自己也尝试过使用int类的扩展方法来添加这个功能,但它们不是静态的 您知道如何快速、准确地执行此操作吗?此linq查询应该可以: strArray.Select(s => int.Parse(s)).ToArray() 应该很好。如果不希望出现异常,可以修改lambda以使用TryParse。使用以下方法: ”123,456”.Split(’,’).Select( s => int.Parse

有没有一种方法可以像在C#中将字符串解析为int一样简单地将字符串数组转换为int数组

我自己也尝试过使用int类的扩展方法来添加这个功能,但它们不是静态的


您知道如何快速、准确地执行此操作吗?

此linq查询应该可以:

strArray.Select(s => int.Parse(s)).ToArray()
应该很好。如果不希望出现异常,可以修改lambda以使用TryParse。

使用以下方法:

”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();
"123,456".Split(',').Select(s => int.Parse(s)).ToArray()
我这样想:

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

这里是扩展方法。这是在字符串上完成的,因为您不能向字符串添加静态函数

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

这假设您希望在“”上拆分,如果不希望,则必须更改ToInArray

LINQ应该允许您在一行中执行此操作。或者lambda expressions。你问之前有没有搜索过这个网站?非常棒,正是我想要的。谢谢
Array.ConvertAll
显然比LINQy
ToArray()需要更少的重新分配。注意,在这种情况下,您甚至不需要lambda,您可以将
Int32.Parse
作为
ConvertAll
的第二个参数传递。
"123,456".Split(',').Select(s => int.Parse(s)).ToArray()
string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();
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();