//1 2 3 4 5 最多5位万 千 百 十 个 11选5 福彩是3位百 十 个 11选5 第一位(万) 第二位(千) 第三为(百) private static List <BetDetailDTO> SplitDingWeiDanSSC(BetDetailDTO dto, int postionIndex = 0, string res = "") { List <BetDetailDTO> result = new List <BetDetailDTO>(); string content = dto.BetContent; if (string.IsNullOrEmpty(content)) { result.Add(dto); return(result); } var array = content.Replace("&", res).Split('|'); foreach (var str in array) { postionIndex++; if (string.IsNullOrEmpty(str)) { continue; } var newItem = dto.Copy(); newItem.BetContent = str + "_" + postionIndex; newItem.PostionName = Utils.GetPostionName(postionIndex); result.Add(newItem); } return(result); }
/// <summary> /// 拆分复试 /// </summary> /// <param name="dto"></param> /// <returns></returns> public static List <BetDetailDTO> Split(BetDetailDTO dto, int minPos) { List <BetDetailDTO> dtos = new List <BetDetailDTO>(); if (string.IsNullOrEmpty(dto.BetContent)) { return(dtos); } var contentArray = dto.BetContent.Split('|'); List <int> indexSource = new List <int>(); for (var i = 1; i <= contentArray.Length; i++) { var cont = contentArray[i - 1]; if (!string.IsNullOrEmpty(cont)) { indexSource.Add(i); } } Combinations <int> v = new Combinations <int>(indexSource, minPos); foreach (var item in v._combinations) { string writerPos = ""; string writerContent = ""; foreach (var x in item) { writerPos += x; writerContent += contentArray[x - 1] + "|"; } if (writerContent.EndsWith("|")) { writerContent = writerContent.Substring(0, writerContent.Length - 1); } var detail = dto.Copy(); detail.PostionName = Utils.GetPostionName(writerPos).Replace("位", ""); detail.BetContent = writerContent + "_" + writerPos; dtos.Add(detail); } return(dtos); }
/// <summary> /// 拆分其他 单式+位置 /// </summary> /// <param name="dto"></param> /// <param name="minPos"></param> /// <returns></returns> public static List <BetDetailDTO> DanShiSplit(BetDetailDTO dto, int minPos) { List <BetDetailDTO> res = new List <BetDetailDTO>(); //12&34&56_12345 if (string.IsNullOrEmpty(dto.BetContent)) { return(res); } var contentArray = dto.BetContent.Split('_'); if (contentArray.Length != 2) { return(res); } var postion = contentArray[1].Select(x => Convert.ToInt32(x.ToString())).Where(c => c >= 1 && c <= 5).ToList(); if (postion.Distinct().Count() != postion.Count) { return(res); } if (postion.Count() < minPos) { return(res); } Combinations <int> v = new Combinations <int>(postion, minPos); foreach (var item in v._combinations) { string newContent = contentArray[0]; string postr = ""; for (var i = 0; i < minPos; i++) { postr += item[i].ToString(); } var detail = dto.Copy(); detail.BetContent = newContent + "_" + postr; detail.PostionName = Utils.GetPostionName(postr).Replace("位", ""); res.Add(detail); } return(res); }