c#中的cast <int>方法不是类型转换

时间:2016-11-07 06:56:07

标签: c# .net linq linq-to-xml

我必须首先通过用逗号分割字符串将字符串转换为int数组,然后转换为int数组。

以下行正常工作

 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();

我在这里犯了什么错误。

我正在以适当的方式使用演员表。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您也可以使用以下方法。

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