開獎結果為5位數:
萬、千、百、十、個
五星購買的時候必須至少每個位選擇一個數進行組合,若每個位數對上計算中獎;那么我們必須先定義好復式的格式,如下:
萬千百十個
開獎結果:1,2,3,4,5
對數據進行組合:
BetDetail的BetContent屬性為投注內容,
BetContent="1,2,3,4,5";

1 /// <summary> 2 /// 根據投注內容得到所有的組合情況 3 /// </summary> 4 /// <returns></returns> 5 private List<string> GetAllBets(BasicModel.LotteryBasic.BetDetail item) 6 { 7 if (null == item || string.IsNullOrEmpty(item.BetContent)) 8 return null; 9 else 10 { 11 var bets = item.BetContent.Split(','); 12 if (bets.Count() != 5) 13 { 14 return null; 15 } 16 else 17 { 18 var list = new List<string>(); 19 var wan = bets[0].Select(m => Convert.ToInt32(m.ToString())).ToList(); 20 var qian = bets[1].Select(m => Convert.ToInt32(m.ToString())).ToList(); 21 var bai = bets[2].Select(m => Convert.ToInt32(m.ToString())).ToList(); 22 var shi = bets[3].Select(m => Convert.ToInt32(m.ToString())).ToList(); 23 var ge = bets[4].Select(m => Convert.ToInt32(m.ToString())).ToList(); 24 list = (from w in wan 25 from q in qian 26 from b in bai 27 from s in shi 28 from g in ge 29 select string.Format("{0}{1}{2}{3}{4}", w, q, b, s, g)).ToList(); 30 return list; 31 } 32 } 33 }
執行GetAllBets獲取組合的結果,然后對結果進行比對,若與開獎結果的每個位置比對成功,那么久算中獎:

1 var list = GetAllBets(item); 2 var result = list.Find(m => m == openResult.Replace(",", "")); 3 if (result != null) 4 { 5 item.IsMatch = true; 6 decimal stepAmt = 0; 7 item.WinMoney = TotalWinMoney(item, GetBaseAmt(item, ref stepAmt), stepAmt, 1); 8 }
若有不明白的請私信我或加群:542620409一起討論