如何在c#中分隔名字和姓氏?

Che*_*rry 4 c# asp.net c#-4.0

我正在寻找如何摆脱异常"索引超出数组的范围." 对于以下案例2

目的:分隔名字和姓氏(姓氏有时可能为空)

情况1:

姓名:John Melwick

我可以用我的代码解决第一个案例

案例2:

姓名:肯尼迪

如果两个我收到错误索引超出了我的代码中LastName的范围

案例3:

姓名:Rudolph Nick Bother

在案例3中,我可以得到:

名字:鲁道夫和姓氏:尼克(而我需要尼克打扰一起作为姓)

非常感谢,如果有人帮助我的话.

这是代码:

Match Names = Regex.Match(item[2], @"(((?<=Name:(\s)))(.{0,60})|((?<=Name:))(.{0,60}))", RegexOptions.IgnoreCase);

if (Names.Success)
{
    FirstName = Names.ToString().Trim().Split(' ')[0];                      
    LastName = Names.ToString().Trim().Split(' ')[1];
}
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 11

拆分字符串,并限制要返回的子字符串数.这将保留第一个空格后的任何内容作为姓氏:

string[] names = Names.ToString().Trim().Split(new char[]{' '}, 2);
Run Code Online (Sandbox Code Playgroud)

然后检查数组的长度以处理只有lastname的情况:

if (names.Length == 1) {
  FirstName = "";
  LastName = names[0];
} else {
  FirstName = names[0];
  LastName = names[1];
}
Run Code Online (Sandbox Code Playgroud)