我试图在名字,中间名和姓氏中拆分名称。为此,我需要拆分名称。我只在控制器中执行此操作。
这是我的代码:
var name = c1.Split(' ');
String fname = name[0];
String mname = null;
String lname = null;
if(name.Length == 2) //first and last names provided
{
fname = name[0];
lname = name[1];
}
if(name.Length > 2) //first item is the first name. last item is the last name. Everything else are middle names
{
fname = name[0];
mname = name.Substring(1, name.Length-2);
lname = name[name.Length-1];
}
但是在控制器中它说没有定义子串。能做什么?
你在一个数组中调用Substring。在c1上调用它。
您在数据集合上使用子字符串而不在字符串上。你的代码应该是这样的
fname.Substring(...)
要么
name[0].substring
您希望将数组的第一个元素作为名字,最后一个作为姓氏,将第一个和最后一个元素之间的元素作为中间名连接在一起:
fname = name[0];
mname = string.Join(" ",name.Skip(1).Take(name.Length-2).ToArray());
lname = name[name.Length-1];
子字符串可用于您用于数组的字符串
if(name.length)
{
fname = name[0];
mname = name[1].Substring(1, name[1].Length-2);
lname = name[name.Length-1];
}
var pieces = c1.Split(' ');
if (pieces.Length == 2)
{
var firstname = pieces[0];
var lastname = pieces[1];
}
if (pieces.Length > 2)
{
var firstname = pieces[0];
var lastname = pieces[pieces.Length -1 ];
var middlename = string.Join(" ", pieces.Skip(1).Take(pieces.Length - 2));
}