我正在尝试从显示名称中提取缩写以用于显示其缩写。我发现这很困难,因为字符串是包含一个或多个单词的一个值。我怎样才能实现这个目标?
例子:
'约翰·史密斯' => JS
“史密斯,约翰”=> SJ
'约翰' => J
“史密斯”=> S
public static SearchDto ToSearchDto(this PersonBasicDto person)
{
return new SearchDto
{
Id = new Guid(person.Id),
Label = person.DisplayName,
Initials = //TODO: GetInitials Code
};
}
Run Code Online (Sandbox Code Playgroud)
我使用了以下解决方案:我创建了一个帮助器方法,它允许我测试多种情况。
public static string GetInitials(this string name)
{
if (string.IsNullOrWhiteSpace(name))
{
return string.Empty;
}
string[] nameSplit = name.Trim().Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries);
var initials = nameSplit[0].Substring(0, 1).ToUpper();
if (nameSplit.Length > 1)
{
initials += nameSplit[nameSplit.Length - 1].Substring(0, 1).ToUpper();
}
return …Run Code Online (Sandbox Code Playgroud)