如何在C#中创建存储语言名称字符串集合的属性
在C#中实现存储语言名称字符串列表的属性
当然可以实现,你只需要从CultureInfo对象中提取对应的语言名称字符串,再转换成List<string>即可。以下是几种常见的实现方式:
方式1:可读写的List属性
直接在属性初始化时,通过LINQ将CultureInfo数组转换为语言名称列表:
using System.Globalization; using System.Linq; public List<string> AllLanguages { get; set; } = CultureInfo.GetCultures(CultureTypes.AllCultures) .Select(c => c.DisplayName) // 显示当前系统语言下的语言名称,比如英语系统里显示"English" .ToList();
方式2:只读属性(推荐,无需修改时使用)
如果不需要修改这个列表,用只读属性更安全,避免意外篡改:
using System.Globalization; using System.Linq; public List<string> AllLanguages { get; } = CultureInfo.GetCultures(CultureTypes.AllCultures) .Select(c => c.NativeName) // 显示语言的本地名称,比如英语显示"English",俄语显示"Русский" .ToList();
补充说明
DisplayName:返回当前系统文化下的语言名称,比如中文系统里英语会显示“英语”NativeName:返回语言自身的本地名称,比如俄语会显示“Русский”,葡萄牙语(巴西)显示“Português (Brasil)”- 如果只需要获取特定类型的文化(比如仅中性文化、仅具体文化),可以修改
CultureTypes参数,比如CultureTypes.NeutralCultures只获取语言大类(如英语、俄语),不包含地区变体
内容的提问来源于stack exchange,提问作者WakandaLives
相关产品推荐
相关产品推荐

