.NET 框架中是否有字母的枚举类型

本文关键字:枚举 类型 框架 是否 NET | 更新日期: 2023-09-27 18:36:56

我需要枚举类型来定义要在项目中使用的字母。.NET 框架中有这样的枚举类型吗?

.NET 框架中是否有字母的枚举类型

您想到了世界上常用的数百种字母中的哪一种? 这当然是摩擦。

最糟糕的问题是,即使在采用相同字母表的语言中,字母顺序也不相同。 例如,丹麦人把 å 放在第一位而不是最后。 对于一个枚举来说,不可能想出一个可以代表字母表的枚举。 除非它是一个非常晦涩难懂的,只在世界的一小部分使用,或者你的程序不会走很远。 在互联网时代不太可能。

确保你不尝试,保持char. 永远不要忽视对System.StringComparison的需求

鉴于没有可用的枚举,生成包含字符集所有字母的可枚举(Char的 IEnumerable)的快速方法是...

 var letters = Enumerable.Range(0, 255).Select(Convert.ToChar).Where(Char.IsLetter);

您可以使用 IsDigit 或 IsPunctic 对方法组进行"或",以包含其他字母。

注意:此方法存在局限性和假设。检查这些...

Unicode 字符分为几类。一个角色的 类别是其属性之一。例如,一个字符可能是 大写字母、小写字母、十进制数字、a 字母编号、连接符标点符号、数学符号或货币 象征。类返回 Unicode 的类别 字符。有关 Unicode 字符的详细信息,请参阅 Unicode 标准。

来源:如何确定 CultureInfo 实例是否支持拉丁字符

.NET Framework 使用 Char 结构来表示 Unicode 字符。Unicode 标准用 一个唯一的 21 位标量数字,称为码位,并定义 UTF-16 编码形式,指定如何将代码点编码为 一个或多个 16 位值的序列。每个 16 位值的范围从 十六进制0x0000到 0xFFFF,存储在 Char 结构中。 Char 对象的值是其 16 位数字(序号)值。

来源: http://msdn.microsoft.com/en-us/library/System.Char(v=vs.110).aspx