2014-09-29 81 views

回答

13

Split不会给你神奇的int值,它返回一个字符串数组。所以你必须转换。

s.Split(',').Select(x => Convert.ToInt32(x)).ToArray(); 
+1

这就是我想我是用'.ToArray 做()' – 2014-09-29 08:52:16

+1

会不会'。选择(转换。 ToInt32)'工作也一样好? – 2014-09-29 08:52:34

+0

@BenjaminGruenbaum不是在这种情况下,我想(可能是因为它们是Convert.ToInt32的多个重载?)。 – 2014-09-29 08:54:31

6

我会像Raphaël说的那样做,但如果您不熟悉lambda表达式(x => ..部分),则可以使用它。两者都会给你一个int的数组,Raphaëls的例子是可取的,但是当你不知道它们是如何工作时,Lambda表达式可能会很吓人:P(基本上它的意思是“对于每个字符串x,做Convert.ToInt32(x) ”

int[] a = s.Split(',').Select(int.Parse).ToArray(); 
+0

@RaphaëlAlthaus确信它会编译,为什么不呢? ?这只是一个方法组。无需将东西包装在函数包装中。 – 2014-09-29 08:59:57

+0

@RaphaëlAlthaus不,你的代码有一个更多的功能.. – 2014-09-29 09:02:19

+0

@ L.B yup,得到刷新我的方法组定义;) – 2014-09-29 09:04:00

相关问题