DotNet Soundex Function

前端 未结 4 902
太阳男子
太阳男子 2021-01-01 06:14

I have a database table that has a column of SQLServer Soundex encoded last name + first name. In my C# program I would like to convert a string using soundex for use in my

4条回答
  •  失恋的感觉
    2021-01-01 06:44

    You could use something like this in c# per SQL

    public static string Soundex(string data)
        {
            StringBuilder result = new StringBuilder();
    
            if (data != null && data.Length > 0)
            {
                string previousCode = "", currentCode = "", currentLetter = "";
    
                result.Append(data.Substring(0, 1));
    
                for (int i = 1; i < data.Length; i++) 
                {
                    currentLetter = data.Substring(i, 1).ToLower();
                    currentCode = "";
    
                    if ("bfpv".IndexOf(currentLetter) > -1)
                        currentCode = "1";
    
                    else if ("cgjkqsxz".IndexOf(currentLetter) > -1)
                        currentCode = "2";
    
                    else if ("dt".IndexOf(currentLetter) > -1)
                        currentCode = "3";
    
    
                    else if (currentLetter == "l")
                        currentCode = "4";
    
                    else if ("mn".IndexOf(currentLetter) > -1)
                        currentCode = "5";
    
                    else if (currentLetter == "r")
                        currentCode = "6";
    
                    if (currentCode != previousCode)
                        result.Append(currentCode);
    
                    if (result.Length == 4) break;
    
                    if (currentCode != "")
                        previousCode = currentCode;
    
                }
            }
            if (result.Length < 4)
                result.Append(new String('0', 4 - result.Length));
    
            return result.ToString().ToUpper();
        }
    

提交回复
热议问题