将字符串添加到List <string>

Nex*_*xuz 0 c# arrays string loops list

我正在研究一种方法,它接受一个字符串并将其分成多个项目,然后将其存储在一个数组中.然后我执行检查以查看数组是否包含两个以上的项目,如果是,我将数组中的特定项目分配给相应的字符串,即将第一项分配给forename,将最后一项分配给姓氏,将所有其他项目分配给中间名称.

我的问题涉及检索数组中不是第一个或最后一个项目的每个项目,然后以正确的顺序将它们分配给字符串.下面你可以看到我试图抓取名称数组中的每个项目,并将结果分配给一个列表,然后可以将其转换为单个字符串,但没有运气.我正在寻找的是这个问题的解决方案.

    public string SplitName(string text)
    {
        string forename;
        string middlename;
        string surname;

        var name = text.Split(' ');

        if (name != null)
        {
            if (name.Length > 2)
            {
                forename = name[0];
                surname = name[name.Length - 1];

                List<string> temp = new List<string>();

                for (int i = 1; i < name.Length - 1; i++)
                {
                    // Assign each item to middlename
                }

                text = string.Format("{0} {1} {2}", forename, middlename, surname);
            }
        }
        else
        {
            text = "INVALID";
        }

        return text;
    }
Run Code Online (Sandbox Code Playgroud)

Iba*_*asa 6

使用String.Join(http://msdn.microsoft.com/en-us/library/tk0xe5h0.aspx)

public string SplitName(string text)
{
    string forename;
    string middlename;
    string surname;

    var name = text.Split(' ');

    if (name != null)
    {
        if (name.Length > 2)
        {
            forename = name[0];
            surname = name[name.Length - 1];

            middlename = string.Join(" ", name, 1, name.Length - 2);

            text = string.Format("{0} {1} {2}", forename, middlename, surname);
        }
    }
    else
    {
        text = "INVALID";
    }

    return text;
}
Run Code Online (Sandbox Code Playgroud)

如果希望使用不同的字符串连接它们,请更改连接的第一个参数("").目前,名称"Bob Jack Willis Mills"将创建一个中间名"Jack Willis".如果你想"杰克,威利斯"使用","作为分隔符.