1

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

4

2 回答 2

6

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

最糟糕的问题是,即使在采用相同字母表的语言中,字母顺序也不相同。例如,丹麦人将 å 放在第一位而不是最后一位。枚举的严重属性,不可能想出一个可以表示字母的枚举。除非它是一个非常晦涩难懂的程序,仅在世界的一小部分地区使用,或者您的程序不会传播很远。在互联网时代几乎不可能。

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

于 2013-10-26T20:57:22.983 回答
0

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

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

您可以使用 IsDigit 或 IsPunctuation 来“或”方法组以包含其他字母。

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

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

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

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

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

于 2013-10-26T23:29:52.970 回答