/// <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()); }
/// <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); }
/// <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); }