如何在.Split()
之后获得此int[]
数组?System.Array不包含ToArray的定义
string s = "1,2,3,4";
int[] a = s.Split(',').ToArray<int>();
如何在.Split()
之后获得此int[]
数组?System.Array不包含ToArray的定义
string s = "1,2,3,4";
int[] a = s.Split(',').ToArray<int>();
Split不会给你神奇的int值,它返回一个字符串数组。所以你必须转换。
s.Split(',').Select(x => Convert.ToInt32(x)).ToArray();
这就是我想我是用'.ToArray
会不会'。选择(转换。 ToInt32)'工作也一样好? – 2014-09-29 08:52:34
@BenjaminGruenbaum不是在这种情况下,我想(可能是因为它们是Convert.ToInt32的多个重载?)。 – 2014-09-29 08:54:31
我会像Raphaël说的那样做,但如果您不熟悉lambda表达式(x => ..部分),则可以使用它。两者都会给你一个int的数组,Raphaëls的例子是可取的,但是当你不知道它们是如何工作时,Lambda表达式可能会很吓人:P(基本上它的意思是“对于每个字符串x,做Convert.ToInt32(x) ”
int[] a = s.Split(',').Select(int.Parse).ToArray();
@RaphaëlAlthaus确信它会编译,为什么不呢? ?这只是一个方法组。无需将东西包装在函数包装中。 – 2014-09-29 08:59:57
@RaphaëlAlthaus不,你的代码有一个更多的功能.. – 2014-09-29 09:02:19
@ L.B yup,得到刷新我的方法组定义;) – 2014-09-29 09:04:00
无法从'字符串转换[]''到INT []' – 2014-09-29 08:50:23