您好我想拆分一个由空格和1010 FirstName MidName LastName
形式分隔的字符串,并在C#MVC4控制器中使用整数1010此字符串将从隐藏的表单元素解析为控制器
var str = "1010 Firstname Midname LastName";
string[] parts = str.Split(' ');
if (parts != null)
{
int idpart = parts[0];
}
我得到的错误不能隐式地将类型字符串转换为int 提前致谢
答案 0 :(得分:0)
var str = "1010 Firstname Midname LastName";
string[] parts = str.Split(' ');
if (parts != null)
{
int idpart = Convert.ToInt32(parts[0]);
string firstpart = parts[1];
string midpart = parts[2];
string lastpart = parts[3];
}
答案 1 :(得分:0)
使用Split方法 - 获取一个分隔符字符数组并返回一个字符串数组。
private static char[] splitArray = { ' ' };
string[] results = input.Split(splitArray);
答案 2 :(得分:0)
异常是由以下行引起的:
int idpart = parts[0];
因为parts [0]将是一个字符串,你不能直接将它分配给一个int。
你需要告诉它将字符串解析成这样的int:
int idpart = int.Parse(parts[0]);
请注意,如果您传递的字符串格式不是解析器可以转换为整数,那么这将引发异常,因此您需要将某种形式的异常处理放入或使用int.TryParse method
答案 3 :(得分:0)
你不能简单地将字符串转换为int,你必须使用int.Parse()
显式转换string str = "1010 FirstName MidName LastName";
var splits = str.Split(' ');
var number = int.Parse(splits[0]);
答案 4 :(得分:0)
最好使用int.TryParse()..不会抛出任何异常。
var str =" 1010 Firstname Midname LastName&#34 ;;
var splittedData = str.Split(' ');
if (splittedData != null && splittedData.Length > 0)
{
int _number;
if (!int.TryParse(splittedData[0], out _number))
{
Console.WriteLine("Not a number");
}
else
{
Console.WriteLine("Got this number - {0}", _number);
}
}
Console.ReadLine();