基于文化的名字和姓氏顺序

时间:2017-10-29 10:32:16

标签: c# cultureinfo

因此,根据我的理解,大多数亚洲文化在给出名字之前都有姓氏。

说我有 string firstName =" Andy" string surName =" Peterson"

根据当地情况,我想以Andy Peterson和Petersen Andy的身份出示他的名字。

C#中是否有任何内置方法?我正在思考string.format(" Andy"," Peterson",Culture.Info(" en-GB"))。

1 个答案:

答案 0 :(得分:0)

使用String.Format获取人名,同时将格式字符串存储在Resources中。资源是特定于文化的,您可以根据您支持的每种文化定义不同的格式字符串。

因此,如果您创建一个名为PersonFullNameFormat的字符串资源,则可以为en-US定义为"{0} {1}",为ru-RU定义"{1} {0}"。然后您可以按如下方式获取人名:

var fullName = string.Format(Resources.PersonFullNameFormat, firstName, lastName);

默认情况下,Resources会根据Thread.CurrentThread.CurrentUICulture返回值。最初,它匹配操作系统中的选定文化,但您可以通过将Thread.CurrentThread.CurrentUICulture设置为您想要的文化来覆盖它:

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-GB");

有关详细信息,请参阅: