示例#1
0
        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;
        }