using System; using System.Globalization; using System.Text; public class Test { public static void Main() { var accentedEs = "e\u0301e\u0301e\u0301"; var fourCircles = char.ConvertFromUtf32(0x1F01C); var normalString = "hello"; var normalStringWithRepeatingChar = "hellooo"; var twelveCircles = fourCircles + fourCircles + fourCircles; Console.WriteLine(HasConsecutiveChars(normalString, 3)); Console.WriteLine(HasConsecutiveChars(twelveCircles, 3)); Console.WriteLine(HasConsecutiveChars(accentedEs, 3)); Console.WriteLine(HasConsecutiveChars(normalStringWithRepeatingChar, 3)); } public static bool HasConsecutiveChars(string source, int sequenceLength) { var charEnumerator = StringInfo.GetTextElementEnumerator(source); var currentElement = string.Empty; int count = 1; while (charEnumerator.MoveNext()) { if (currentElement == charEnumerator.GetTextElement()) { if (++count >= sequenceLength) { return true; } } else { count = 1; currentElement = charEnumerator.GetTextElement(); } } return false; } }