Поскольку вы упомянули LINQ в тегах, я получу вам это, пропустив проверку ввода одной части (только "Johm") или вообще ничего не введя, что будет:
Убедитесь, что у вас есть:
using System.Linq;
Тогда:
var nameParts = name.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());
Thise сделает работу для счастливого пути
Если мы хотим проверить крайние случаи, мы можем добавить дополнительные проверки:
static string GetName(string nameEntry)
{
// assuming .NET 4, or use string.IsNullOrEmpty(),
// as we are protected later from white space-only text
if(string.IsNullOrWhiteSpace(nameEntry))
return string.Empty; // Or throw error. Your choice
var nameParts = nameEntry.Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
if(!nameParts.Any()) return string.Empty(); // Or throw error. Your choice
if(nameParts.Length == 1)
return nameParts.First();
var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());
return fullName;
}