Hashtable 构造函数 ()的VB.NET例子

来源:百度文库 编辑:神马文学网 时间:2024/10/01 08:45:35

 

Hashtable 构造函数 ()的VB.NET例子

msdnvb @ 2007-04-12 00:00 | VB.NET

下面的代码示例使用不同的 Hashtable 构造函数创建哈希表,并演示这些哈希表行为之间的差异,即使每个哈希表均包含相同元素也会存在差异。

Imports SystemImports System.CollectionsImports System.GlobalizationPublic Class myComparerImplements IEqualityComparerPublic Function Equals1(ByVal x As Object, ByVal y As Object) _As Boolean Implements IEqualityComparer.EqualsReturn x.Equals(y)End FunctionPublic Function GetHashCode1(ByVal obj As Object) _As Integer Implements IEqualityComparer.GetHashCodeReturn obj.ToString().ToLower().GetHashCode()End FunctionEnd ClassPublic Class myCultureComparerImplements IEqualityComparerDim myComparer As CaseInsensitiveComparerPublic Sub New()myComparer = CaseInsensitiveComparer.DefaultInvariantEnd SubPublic Sub New(ByVal myCulture As CultureInfo)myComparer = New CaseInsensitiveComparer(myCulture)End SubPublic Function Equals1(ByVal x As Object, ByVal y As Object) _As Boolean Implements IEqualityComparer.EqualsIf (myComparer.Compare(x, y) = 0) ThenReturn TrueElseReturn FalseEnd IfEnd FunctionPublic Function GetHashCode1(ByVal obj As Object) _As Integer Implements IEqualityComparer.GetHashCodeReturn obj.ToString().ToLower().GetHashCode()End FunctionEnd ClassPublic Class SamplesHashtablePublic Shared Sub Main()' Create a hash table using the default comparer.Dim myHT1 As New Hashtable()myHT1.Add("FIRST", "Hello")myHT1.Add("SECOND", "World")myHT1.Add("THIRD", "!")' Create a hash table using the specified IEqualityComparer that uses' the default Object.Equals to determine equality.Dim myHT2 As New Hashtable(New myComparer())myHT2.Add("FIRST", "Hello")myHT2.Add("SECOND", "World")myHT2.Add("THIRD", "!")' Create a hash table using a case-insensitive hash code provider and' case-insensitive comparer based on the InvariantCulture.Dim myHT3 As New Hashtable( _CaseInsensitiveHashCodeProvider.DefaultInvariant, _CaseInsensitiveComparer.DefaultInvariant)myHT3.Add("FIRST", "Hello")myHT3.Add("SECOND", "World")myHT3.Add("THIRD", "!")' Create a hash table using an IEqualityComparer that is based on' the Turkish culture (tr-TR) where "I" is not the uppercase' version of "i".Dim myCul As New CultureInfo("tr-TR")Dim myHT4 As New Hashtable(New myCultureComparer(myCul))myHT4.Add("FIRST", "Hello")myHT4.Add("SECOND", "World")myHT4.Add("THIRD", "!")' Search for a key in each hash table.Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))Console.WriteLine("first is in myHT4: {0}", myHT4.ContainsKey("first"))End SubEnd Class'This code produces the following output.'Results vary depending on the system's culture settings.'first is in myHT1: False'first is in myHT2: False'first is in myHT3: True'first is in myHT4: False