1

嗨,我想拆分一个由空格和表单分隔的字符串, 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 在此先感谢

4

5 回答 5

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];
} 
于 2012-10-04T00:17:14.647 回答
0

使用 Split 方法 - 接受一个分隔符数组并返回一个字符串数组。

private static char[] splitArray = { ' ' };
string[] results = input.Split(splitArray);
于 2012-10-04T00:17:37.107 回答
0

异常是由以下行引起的:

int idpart = parts[0];

因为parts[0] 将是一个字符串,你不能直接将它分配给一个int。

你需要告诉它把字符串解析成这样的int:

int idpart = int.Parse(parts[0]);

请注意,如果您传递的字符串不是解析器可以转换为整数的格式,这将引发异常,因此您需要将某种形式的异常处理放入或使用int.TryParse 方法

于 2012-10-04T00:30:19.650 回答
0

您不能简单地将字符串转换为 int,您必须使用 int.Parse() 显式转换

string str = "1010 FirstName MidName LastName";
var splits = str.Split(' ');
var number = int.Parse(splits[0]);
于 2012-10-04T00:30:23.900 回答
0

最佳使用 int.TryParse().. 你不会被抛出任何异常。

var str = "1010 名字中间名姓氏";

            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();
于 2012-10-04T07:16:16.657 回答