📜  将数组从字符串转换为int c#(1)

📅  最后修改于: 2023-12-03 15:39:17.860000             🧑  作者: Mango

将数组从字符串转换为int C#

在 C#中,将数组从字符串转换为 int 可以使用 Array.ConvertAll()Enumerable.Select() 方法。这两种方法在处理较大的数组时性能良好,并且在处理类似于 CSV 数据或需要从文本文件中导入数据的场景中非常实用。

使用 Array.ConvertAll() 方法

以下是使用 Array.ConvertAll() 方法将字符串数组转换为 int 数组的简单示例:

string[] stringArray = { "1", "2", "3", "4", "5" };
int[] intArray = Array.ConvertAll(stringArray, int.Parse);

在上面的示例中,stringArray 包含 5 个字符串值,每个字符串值代表一个值。定义了一个 intArray 数组,并从 stringArray 数组中的每个字符串值将其转换为 int 值。

使用 Enumerable.Select() 方法

您也可以使用 Enumerable.Select() 方法将字符串转换为 int 数组。以下是将 stringArray 转换为 int 数组的示例:

int[] intArray = stringArray.Select(x => int.Parse(x)).ToArray();

在上面的示例中,Select() 操作遍历 stringArray 数组并将每个字符串值转换为 int 值,然后使用 ToArray() 方法将其转换为 int 数组。

处理转换失败

在从 String 数组转换为 int 数组时,解析可能会失败。如果尝试将无法解析的字符串转换为 int 值,则会抛出 FormatException。在ToArray() 和ConvertAll() 方法中也无法捕捉转换失败的异常。

以下示例演示如何捕获和处理异常:

string[] stringArray = { "1", "2", "3", "four", "5" };
int[] intArray = new int[stringArray.Length];
for (int i = 0; i < stringArray.Length; i++)
{
    int value;
    bool success = int.TryParse(stringArray[i], out value);
    if (success)
    {
        intArray[i] = value;
    }
    else
    {
        intArray[i] = 0;
        Console.WriteLine("Could not parse {0} as int. Assigned 0 instead.", stringArray[i]);
    }
}

在上面的示例中,对 TryParse() 方法调用尝试解析字符串值并将其转换为 int。如果解析失败,则将值设置为 0,并显示错误消息。如果解析成功,则将值分配给 intArray。在处理大型数组时,此方法可能比之前的方法更具有可读性。

结论

在 C# 中,将字符串转换为 int 数组主要有两种方法:Array.ConvertAll()Enumerable.Select()。以上的两种方法都可在几乎所有的场景中使用。您可以根据自己的需要选择适合自己的方法,确保将结果正确地转换为 int 值。