'Soundex in VB.NET 2005 AND 2008 Public Shared Function SoundX(ByVal StringX As String) As String Return SoundX(StringX, 4) End Function Public Shared Function SoundX(ByVal StringX As String, ByVal Length As Integer) As String Dim v1 As String = "" Dim I As Integer = StringX.Length If (I > 1) Then StringX = StringX.ToUpper() Dim Charac() As Char = StringX.ToCharArray() Dim Buffer As New System.Text.StringBuilder Buffer.Length = 0 Dim T1 As Integer = 0 Dim P1 As Integer = 0 Buffer.Append(Charac(0)) Dim i As Integer Dim x1 As Integer = I - 1 For i = 1 To x1 Select Case Charac(i) Case "A", "E", "I", "O", "U", "H", "W", "Y" P1 = 0 Case "B", "F", "P", "V" P1 = 1 Case "C", "G", "J", "K", "Q", "S", "X", "Z" P1 = 2 Case "D", "T" P1 = 3 Case "L" P1 = 4 Case "M", "N" P1 = 5 Case "R" P1 = 6 End Select If (P1 <> T1) Then If (P1 <> 0) Then Buffer.Append(P1) End If End If loop If (Buffer.Length = Length) Then Exit For End If Next I = Buffer.Length If (I < Length) Then Buffer.Append("0", (Length - I)) End If v1 = Buffer.ToString() End If Return v1 End Function