将字符串转换为int []
使用LINQ:
string str = "1,2,3,4";
var result = str.Split(',').Select(c => Convert.ToInt32(c)).ToArray();
这可能是即使使用method group简单:
var result = str.Split(',').Select(int.Parse).ToArray();
此外,如果你不知道更多关于LINQ中,有一个与Array.ConvertAll
方法,转换另一种方式一个类型的数组(,在调用Split()
之后的字符串数组)到另一个类型的数组(int[]
,如您所愿):
var result = Array.ConvertAll(str.Split(','), int.Parse);
试试这个:
string str = "1,2,3,4";
int[] array = str.Split(',').Select(x => int.Parse(x)).ToArray();
如果有,你可能有双逗号(前一个字符串的机会:1,,2,3,4
),那么这将更好地工作按@Callum Linington的评论:
int[] array = str.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries)
.Select(int.Parse)
.ToArray();
什么上面的代码做的:
- 调用
Split()
后创建一个字符串数组,这样方法调用之后,我们将有这样的事情:{ "1", "2", "3", "4"}
- 然后我们通过每一个这些字符串
int.Parse()
将其转换为32位有符号整数。 - 我们采取所有这些整数,并用
ToArray()
制作一个整数。
我会一直坚持'StringSplitOptions.RemoveEmptyEntries'在那里。但是,这不是一个傻瓜证明方法无论如何 –
@CallumLinington更新了答案。感谢您的建议。 – Nasreddine
可以使用,
string str = "1,2,3,4";
var arr = str.Split(',').Select(int.Parse).ToArray()
Int32.Parse(stringname)
或者
Int32.TryParse(stringname,out outputvariable)
如果用逗号隔开,然后首先将它们分割stringname.split(',')
这将返回一个字符串数组,它们分别使用解析while
循环。
bool isInt = true;
string[] str = "1,2,3,4".Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
int counter = 0;
List<int> parsedInts = new List<int>(str.Length);
while(isInt && counter < str.Length)
{
int parsedInt;
isInt = int.TryParse(str[counter], out parsedInt);
counter++;
if (isInt) {
parsedInts.Add(parsedInt);
}
}
// then you can return the list as an array if you want
parsedInts.ToArray();
虽然这种方法是更长,更详细的,它实际上可以使您将其分配给前阵解析字符串为int。
请务必在此注意,只要不能解析字符串,它就会立即取消,但如果遇到错误的数据类型,则欢迎您将其放入else
。
str.Split(',')。Select(int.Parse).ToArray();? –
请阅读这篇文章:http://*.com/questions/1019793/how-can-i-convert-string-to-int –