📅  最后修改于: 2023-12-03 15:39:17.860000             🧑  作者: Mango
在 C#中,将数组从字符串转换为 int 可以使用 Array.ConvertAll()
或 Enumerable.Select()
方法。这两种方法在处理较大的数组时性能良好,并且在处理类似于 CSV 数据或需要从文本文件中导入数据的场景中非常实用。
以下是使用 Array.ConvertAll()
方法将字符串数组转换为 int 数组的简单示例:
string[] stringArray = { "1", "2", "3", "4", "5" };
int[] intArray = Array.ConvertAll(stringArray, int.Parse);
在上面的示例中,stringArray
包含 5 个字符串值,每个字符串值代表一个值。定义了一个 intArray
数组,并从 stringArray
数组中的每个字符串值将其转换为 int 值。
您也可以使用 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 值。