Example #1
0
        /// <summary>
        /// 获取随机字符串
        /// </summary>
        /// <param name="length">长度</param>
        /// <param name="prefix">前缀</param>
        /// <param name="suffix">后缀</param>
        /// <param name="seedType">StringSeedTypeEnum</param>
        /// <param name="caseType">StringCaseTypeEnum</param>
        /// <returns></returns>
        public static string GetRandomCode(int length, string prefix = "", string suffix = "", StringSeedTypeEnum seedType = StringSeedTypeEnum.Number, StringCaseTypeEnum caseType = StringCaseTypeEnum.Normal)
        {
            char[] seedList = null;
            if (seedType == StringSeedTypeEnum.Number)
            {
                seedList = NUMBER_SEED_LIST;
            }
            else if (seedType == StringSeedTypeEnum.Char)
            {
                seedList = CHAR_SEED_LIST;
            }
            else
            {
                seedList = NUMBER_CHAR_SEED_LIST;
            }
            int seedLength = seedList.Length;

            Random random = new Random();

            StringBuilder stringBuilder = new StringBuilder();

            if (!string.IsNullOrEmpty(prefix))
            {
                stringBuilder.Append(prefix);
            }
            for (int index = 0; index < length; index++)
            {
                stringBuilder.Append(seedList[random.Next(0, seedLength)]);
            }
            if (!string.IsNullOrEmpty(suffix))
            {
                stringBuilder.Append(suffix);
            }

            if (caseType == StringCaseTypeEnum.Lower)
            {
                return(stringBuilder.ToString().ToLower());
            }
            else if (caseType == StringCaseTypeEnum.Upper)
            {
                return(stringBuilder.ToString().ToUpper());
            }
            return(stringBuilder.ToString());
        }
Example #2
0
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <typeparam name="T">简单类型,例:string</typeparam>
        /// <param name="str">要拆分的字符串,例:id,name</param>
        /// <param name="splitChar">分隔符,例:,</param>
        /// <param name="removeRepeat">是否去除重复值</param>
        /// <param name="caseEnum">StringCaseTypeEnum 枚举</param>
        /// <returns></returns>
        public static List <T> ToList <T>(string str, string splitChar, bool removeRepeat = false, StringCaseTypeEnum caseEnum = StringCaseTypeEnum.Normal)
        {
            if (caseEnum != StringCaseTypeEnum.Normal)
            {
                if (caseEnum == StringCaseTypeEnum.Lower)
                {
                    str       = str.ToLower();
                    splitChar = splitChar.ToLower();
                }
                else
                {
                    str       = str.ToUpper();
                    splitChar = splitChar.ToUpper();
                }
            }

            List <string> stringList = str.Split(new string[] { splitChar }, StringSplitOptions.RemoveEmptyEntries).ToList <string>();

            if (removeRepeat)
            {
                stringList = stringList.Distinct <string>().ToList();
            }

            List <T> dataList = new List <T>();

            foreach (string stringData in stringList)
            {
                dataList.Add((T)Convert.ChangeType(stringData.Trim(), typeof(T)));
            }
            return(dataList);
        }
Example #3
0
        /// <summary>
        /// 转成键值对列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="K"></typeparam>
        /// <param name="str"></param>
        /// <param name="firstChar"></param>
        /// <param name="secondChar"></param>
        /// <param name="caseEnum"></param>
        /// <returns></returns>
        public static List <StringKeyValueData <T, K> > ToKeyValueList <T, K>(string str, string firstChar, string secondChar, StringCaseTypeEnum caseEnum = StringCaseTypeEnum.Normal)
        {
            if (caseEnum != StringCaseTypeEnum.Normal)
            {
                if (caseEnum == StringCaseTypeEnum.Lower)
                {
                    str        = str.ToLower();
                    firstChar  = firstChar.ToLower();
                    secondChar = secondChar.ToLower();
                }
                else
                {
                    str        = str.ToUpper();
                    firstChar  = firstChar.ToUpper();
                    secondChar = secondChar.ToLower();
                }
            }
            List <StringKeyValueData <T, K> > resultList = new List <StringKeyValueData <T, K> >();

            string[] stringList = str.Split(new string[] { firstChar }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stringData in stringList)
            {
                resultList.Add(ToKeyValueData <T, K>(stringData, secondChar));
            }
            return(resultList);
        }
        /// <summary>
        /// 获取日期字符串
        /// </summary>
        /// <param name="length">长度</param>
        /// <param name="prefix">前缀</param>
        /// <param name="suffix">后缀</param>
        /// <param name="seedType">StringSeedTypeEnum</param>
        /// <param name="caseType">StringCaseTypeEnum</param>
        /// <returns></returns>
        public static string GetDateCode(int length, string prefix = "", string suffix = "", StringSeedTypeEnum seedType = StringSeedTypeEnum.Number, StringCaseTypeEnum caseType = StringCaseTypeEnum.Normal)
        {
            string code = DateTime.Now.ToString("yyyyMMddHHmmssfff");

            if (length <= code.Length)
            {
                return(code.Substring(0, length));
            }

            int subLength = length - code.Length;

            if (!string.IsNullOrEmpty(prefix))
            {
                if (subLength <= prefix.Length)
                {
                    prefix = prefix.Substring(0, prefix.Length - subLength);
                }
                code       = prefix + code;
                subLength -= prefix.Length;
            }
            if (subLength > 0)
            {
                string randomCode = GetRandomCode(subLength, "", "", seedType, caseType);
                code      += randomCode;
                subLength -= randomCode.Length;
            }
            if (!string.IsNullOrEmpty(suffix))
            {
                if (subLength <= suffix.Length)
                {
                    suffix = suffix.Substring(0, suffix.Length - subLength);
                }
                code      += suffix;
                subLength -= suffix.Length;
            }
            return(code);
        }