Exemplo n.º 1
0
        public static string Join(string combieChar, string cSymbol, StringJoinOption options, params string[] strparams)
        {
            string[] rst = new string[strparams.Length];
            Array.Copy(strparams, rst, strparams.Length);


            if ((options & StringJoinOption.Reverse) != 0)
            {
                Array.Reverse(rst);
            }

            bool removeEmpty           = (options & StringJoinOption.RemoveEmpty) != 0;
            bool noLastJoinflag        = (options & StringJoinOption.NoLastJoinFlag) != 0;
            bool checkstringcombiechar = (options & StringJoinOption.CheckStringCombieChar) != 0;
            bool cSymbolEmpty          = IsEmpty(cSymbol);

            if (options == StringJoinOption.None || (!removeEmpty && !noLastJoinflag && !checkstringcombiechar))
            {
                return(string.Join(combieChar, rst) + combieChar);
            }
            else if (cSymbolEmpty && options == StringJoinOption.NoLastJoinFlag)
            {
                return(string.Join(combieChar, rst));
            }
            else
            {
                List <string> list = new List <string>(strparams);
                StringBuilder sb   = new StringBuilder(strparams.Length * 10);
                for (int i = 0; i < rst.Length; i++)
                {
                    if (!(removeEmpty && IsEmpty(rst[i])))
                    {
                        if (!cSymbolEmpty)
                        {
                            sb.Append(cSymbol);
                            sb.Append(rst[i]);
                            sb.Append(cSymbol);
                        }
                        else
                        {
                            sb.Append(rst[i]);
                        }


                        if (!(checkstringcombiechar && cSymbolEmpty && rst[i].EndsWith(combieChar)))
                        {
                            sb.Append(combieChar);
                        }
                    }
                }

                if (noLastJoinflag)
                {
                    sb.Remove(sb.Length - 1, combieChar.Length);
                }

                return(sb.ToString());
            }
        }
Exemplo n.º 2
0
 public static string Join(string combieChar, StringJoinOption options, params string[] strparams)
 {
     return(Join(combieChar, string.Empty, options, strparams));
 }