计算机可以以字母顺序排列字符是因为字符是以unicode numeric code 的内部形式表示。当比较两个string时,c#比较构成它们的那些字符的unicode.
String 类提供了多个方法比较strings, 这里比较其中的Equals方法, CompareTo方法 和 == 方法。
- Equals方法是System.String继承自object类,Equals方法比较两个比较的对象是否含有相同的值。字符窜中的每个字符都会被比较。
- == 方法与Equals方法意思一样。字符窜中的每个字符都会被比较。
- static Equals 方法比较作为参数的两个string是否相等。
- CompareTo 方法返回0 如果相同的话,-1 如果调用CompareTo方法的string对象比作为参数的string小。 大的话是 1。字符窜中的每个字符都会被比较。例如
string str = "hellq";
string str2 = "hellp";
Console.WriteLine("" + str.CompareTo(str2)); 结果是1
string str = "hello";
string str2 = "hellp";
Console.WriteLine("" + str.CompareTo(str2)); 结果是-1
hashtable通过调用key对象的gethashtable方法返回的hash code来决定数据类在hashtable中的存储位置。hash code 是有object类的gethashtable 方法来进行hashcode 计算。尽管所有的类都从object类继承了这个方法,但仍建议重写重写object类的这个方法。Class String overides 方法 GetHashCode 来根据祖父窜的内容提供一个平均的 hash-code 分布。注:不同的字符窜也有相同的hashcode
请大家多提意见