public static string Variation(this string str, VariationMode mode) { var result = str; if (mode != VariationMode.None) { var replaceChars = new[] { '*', '.', ':', '!', '_', '-', '#', '%' }; //char[] replaceChars = new char[] { (char)160, (char)8203, (char)12288, (char)65279, (char)10240 }; var shuffled = replaceChars.Shuffle(); string shuffledArray = new string(shuffled.ToArray()); switch (mode) { case VariationMode.AddPlaceHolders: string placeholder = shuffledArray.Substring(0, 5); char[] plac = placeholder.ToArray(); Array.Reverse(plac); string reversePlaceHolder = new string(plac); result = placeholder + " " + str + " " + reversePlaceHolder; break; case VariationMode.AlternativeSpaces: char[] resArray = str.ToArray(); for (int i = 0; i < resArray.Length; i++) { if (resArray[i] == ' ') { char replacingChar = shuffledArray[i % shuffledArray.Length]; resArray[i] = replacingChar; } } result = new string(resArray); break; case VariationMode.TruncateAndAddNumbers: Random rnd = new Random(DateTime.Now.Millisecond); result = str.Substring(0, Math.Min(46, str.Length)); result += " " + rnd.Next(1000).ToString(); break; } } return(result); }
public static string Variation(this string str, VariationMode mode) { var result = str; if (mode != VariationMode.None) { var replaceChars = new[] { '*', '.', ':', '!', '_', '-', '#', '%' }; //char[] replaceChars = new char[] { (char)160, (char)8203, (char)12288, (char)65279, (char)10240 }; var shuffled = replaceChars.Shuffle(); string shuffledArray = new string(shuffled.ToArray()); switch (mode) { case VariationMode.AddPlaceHolders: string placeholder = shuffledArray.Substring(0, 5); char[] plac = placeholder.ToArray(); Array.Reverse(plac); string reversePlaceHolder = new string(plac); result = placeholder + " " + str + " " + reversePlaceHolder; break; case VariationMode.AlternativeSpaces: char[] resArray = str.ToArray(); for (int i = 0; i < resArray.Length; i++) { if (resArray[i] == ' ') { char replacingChar = shuffledArray[i % shuffledArray.Length]; resArray[i] = replacingChar; } } result = new string(resArray); break; case VariationMode.TruncateAndAddNumbers: Random rnd = new Random(DateTime.Now.Millisecond); result = str.Substring(0, Math.Min(46, str.Length)); result += " " + rnd.Next(1000).ToString(); break; } } return result; }