cast< int>方法不是类型强制转换

本文关键字:类型 转换 int 方法 cast | 更新日期: 2023-09-27 18:16:54

我必须先用逗号分隔字符串,然后再转换成整型数组。

和后面的行工作正常

 int[] array = input.Split(',').Select(obj=>Convert.ToInt32(obj)).ToArray();

,但我想用不同的方式做到这一点,使用强制转换扩展方法。

int[] array = input.Split(',').Cast<int>().ToArray();

但是使用强制转换扩展,抛出无效强制转换操作异常。

我甚至在强制转换之前应用了ofType(),这不是真正需要的,但仍然不起作用。

int[] array = input.Split(',').OfType<string>().Cast<int>().ToArray();

我在这里犯了什么错误?

我正在以适当的方式使用cast方法。

cast< int>方法不是类型强制转换

您应该使用int.Parsestring转换为int。在c#中,字符串是而不是,可以直接转换为整数。

input.Split(',').Select(int.Parse).ToArray()

您也可以使用以下方法:

int[] array = Array.ConvertAll(input.Split(','), int.Parse);