我需要枚举类型来定义在项目中使用的字母。 .NET框架中是否有这样的枚举类型?
答案 0 :(得分:6)
您想到的世界上常见的数百种字母表中的哪一种?当然,这是一个问题。
最糟糕的问题是,即使采用相同字母的语言,字母顺序也不尽相同。例如,丹麦人把第一个而不是最后一个。对于枚举的削弱属性,不可能提出可以表示字母表的枚举。除非它是一个非常模糊的,只在世界上的一个小部分使用,或者你的程序不会走得很远。在互联网时代不太可能。
请确保您不要尝试,保留char
。永远不要忽视对System.StringComparison
答案 1 :(得分:0)
鉴于没有可用的枚举,生成包含字符集所有字母的可枚举(IEnumerable of Char)的快速方法是......
var letters = Enumerable.Range(0, 255).Select(Convert.ToChar).Where(Char.IsLetter);
你可以'或'使用IsDigit或IsPunctuation的方法组来包含其他字母。
注意:这种方法存在局限性和假设。检查一下......
Unicode字符分为几类。一个角色 category是其中一个属性。例如,一个角色可能是 大写字母,小写字母,十进制数字,a 字母编号,连接符标点符号,数学符号或货币 符号。 UnicodeCategory类返回Unicode的类别 字符。有关Unicode字符的更多信息,请参阅Unicode 标准。
来源:How to determine if a CultureInfo instance supports Latin characters
.NET Framework使用Char结构来表示Unicode 字符。 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