Ejemplo n.º 1
0
        public static string RemoveDiacritics(this string source)
        {
            if (string.IsNullOrEmpty(source))
            {
                return(source);
            }

            DiacriticIndex index  = DiacriticMap.Index;
            var            result = new StringBuilder(source.Length);

            string replacement;

            foreach (var character in source)
            {
                if (index.Map.TryGetValue(character, out replacement))
                {
                    result.Append(replacement);
                }
                else
                {
                    result.Append(character);
                }
            }

            return(result.ToString());
        }
Ejemplo n.º 2
0
        private static void BuildIndex()
        {
            var mappings = new Dictionary <char, string>();

            foreach (var diacriticProvider in Providers)
            {
                IDictionary <char, string> map = diacriticProvider.Provide();

                foreach (KeyValuePair <char, string> mapping in map)
                {
                    mappings[mapping.Key] = mapping.Value;
                }
            }

            Index = new DiacriticIndex(mappings);
        }
Ejemplo n.º 3
0
        public static bool HasDiacritics(this string source)
        {
            if (string.IsNullOrEmpty(source))
            {
                return(false);
            }

            DiacriticIndex index = DiacriticMap.Index;

            foreach (char character in source)
            {
                if (index.Map.ContainsKey(character))
                {
                    return(true);
                }
            }

            return(false);
        }