考虑查看以字符串为示例的 CultureInfo 的构造函数(例如“en-us”)
提供有关特定文化的信息(称为非托管代码开发的“区域设置”)。这些信息包括文化名称、书写系统、使用的日历以及日期和排序字符串的格式。
它与现实世界中实际使用的内容相当具体(例如,国家/语言对是有意义的)。您还可以创建自己的文化。
您指定该语言可能不是该国家/地区使用的语言。你能澄清一下你将使用它吗?如果没有更多信息,您似乎正在尝试定义类似于CultureInfo的内容。
或者,您还可以定义一个简单的对象,它只有两个属性(国家和语言),其中国家是ISO 3166-2字符串,语言是ISO 639-1 字符串,如下Edward Loper 建议的那样。
您可以将 ISO 代码列表存储在 XML 文件中,并使用传统技术对其进行解析。我建议 CultureInfo,因为您指定您正在寻找 BCL 中已有的内容。
一般来说,开放集的框架设计指南不鼓励使用枚举:
不要将枚举用于开放集(例如操作系统版本、朋友的姓名等)。
您可以采用混合方法,在其中定义两个具有一堆静态只读字符串的静态类,如
// ISO-3166-2 codes
public static Countries
{
public static readonly string France = "FR";
...
}
// CultureInfo style codes
public static Languages
{
public static readonly string BritishEnglish = "en-GB";
}
更新:根据您的评论,这是专门针对电影的,您仍然可以将 CultureInfo 用于制作它的文化和内容的文化。除此之外的任何事情都可能对微软来说过于政治化,以至于无法参与使其成为操作系统的一部分(参见this)。因此,您必须定义自己的。