使用 linq 的 select 结合 int.parse 或 convert.toint32 是最简洁的做法,它能将字符串数组中的每个元素转换并投影为新的整数序列。调用 .toarray() 即可得到最终的 int[] 结果。如果输入数组包含非数字字符,转换过程会抛出异常,因此实际开发中建议配合 int.tryparse 进行安全过滤或处理。

如何安全地处理包含无效数据的字符串数组?
当字符串数组中可能混入空值或非数字字符串时,直接使用 int.Parse 会导致程序崩溃。此时应改用 int.TryParse 在循环中逐个判断,仅保留能成功解析的值,从而生成一个干净的 int[]。这种方法虽然代码稍长,但能确保程序的健壮性,适用于用户输入或外部数据源不可信的场景。

using System;
using System.Linq;
public class Program
{
public static void Main()
{
string[] strArray = { "1", "2", "3", "4", "5" };
// 方法一:直接转换(假设数据干净)
int[] result1 = strArray.Select(int.Parse).ToArray();
Console.WriteLine(string.Join(", ", result1));
// 方法二:安全转换(处理脏数据)
int[] result2 = SafeConvert(strArray);
Console.WriteLine(string.Join(", ", result2));
}
private static int[] SafeConvert(string[] input)
{
var validInts = new System.Collections.Generic.List<int>();
foreach (var s in input)
{
if (int.TryParse(s, out int number))
{
validInts.Add(number);
}
}
return validInts.ToArray();
}
}</int>
如何将字符串数组转换为 List 而不是数组?
如果后续操作需要动态增删元素,可以将转换结果存储为 List。只需将 LINQ 查询末尾的 .ToArray() 替换为 .ToList() 即可。这种写法同样支持 int.Parse 和 int.TryParse 两种模式,且 List 提供了更丰富的集合操作方法,适合中间态数据处理。

using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
string[] strArray = { "10", "20", "30" };
// 转换为 List<int>
List<int> listResult = strArray.Select(int.Parse).ToList();
// 可以动态添加元素
listResult.Add(40);
Console.WriteLine(string.Join(", ", listResult));
}
}</int></int>
基于程序中某个输入、条件或结果的具体问题
在上述代码中,如果输入数组包含空字符串 "",int.Parse 会抛出 FormatException,而 int.TryParse 会返回 false 并跳过该值。这一差异决定了选择哪种转换策略:若数据源绝对可信,选前者;若存在不确定性,必须选后者以避免运行时错误。











