如何在控制器中使用子字符串?

时间:2019-03-04 07:46:33

标签: c# arrays substring

我正在尝试将名字拆分为名字,中间名和姓氏。为此,我需要拆分名称。我只在控制器中这样做。

这是我的代码:

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];
}

但是在控制器中它说未定义子字符串。怎么办

5 个答案:

答案 0 :(得分:0)

您要在数组上调用Substribg。改为在c1上调用它。

答案 1 :(得分:0)

您在数据收集而不是字符串上使用子字符串。 您的代码应类似于

    fname.Substring(...)

    name[0].substring

答案 2 :(得分:0)

您要获取数组的第一个元素为名字,最后一个为姓氏,并且第一个元素和最后一个元素之间的元素已加入作为中间名

fname = name[0];
mname = string.Join(" ",name.Skip(1).Take(name.Length-2).ToArray());
lname = name[name.Length-1];

答案 3 :(得分:0)

子字符串可用于字符串 您用于数组

 if(name.length)
 {
     fname = name[0];
     mname = name[1].Substring(1, name[1].Length-2);
     lname = name[name.Length-1];          
 }

答案 4 :(得分:0)

            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));

            }