【发布时间】:2014-11-23 14:35:45
【问题描述】:
如何在.Split() 之后得到这个int[] 数组?
string s = "1,2,3,4";
int[] a = s.Split(',').ToArray<int>();
【问题讨论】:
-
无法从
string[]转换为int[]
如何在.Split() 之后得到这个int[] 数组?
string s = "1,2,3,4";
int[] a = s.Split(',').ToArray<int>();
【问题讨论】:
string[] 转换为 int[]
Split 不会神奇地为您提供 int 值,它会返回一个字符串数组。所以你必须转换。
s.Split(',').Select(x => Convert.ToInt32(x)).ToArray();
【讨论】:
.ToArray<int>() 所做的事情
.Select(Convert.ToInt32) 不也能正常工作吗?
.Select(int.Parse) 应该可以正常工作并且更短。
我会按照 Raphaël 所说的那样做,但如果您不熟悉 lambda 表达式(x => .. 部分),您可以改用它。两者都会给你一个 int 数组,Raphaëls 的例子更可取,但是当你不知道它们是如何工作的时候 Lambda 表达式可能会很可怕:P(基本上它的意思是“对于每个字符串 x,做 Convert.ToInt32(x) ”。
int[] a = s.Split(',').Select(int.Parse).ToArray();
【讨论】: