//分组指数过滤的(分组指数和、分组指数积) List<string> GetGoupIndexSumProduct(string terms, int Types, List<string> ListR) { List<Netball> List = DataGrid1.ItemsSource as List<Netball>; List<SumIn> ListOdd = new List<SumIn>(); for (int i = 0; i < List.Count; i++) { //胜平负的赔率类 SumIn Odd = new SumIn(); Odd.I0 = List[i].In0; Odd.I1 = List[i].In1; Odd.I2 = List[i].In2; Odd.I3 = List[i].In3; Odd.I4 = List[i].In4; Odd.I5 = List[i].In5; Odd.I6 = List[i].In6; Odd.I7 = List[i].In7; Odd.id = List[i].Id; ListOdd.Add(Odd); } List<string> ListStr = new List<string>(); string[] arrTerms = terms.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string term in arrTerms) { string nums = term.Split('|')[0]; string nums2 = term.Split('|')[1]; string[] strs = nums.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); List<int> number = new List<int>(); for (int i = 0; i < strs.Length; i++) { if (strs[i] == "Y") { number.Add(i); } } double Min = double.Parse(nums2.Split('-')[0]); double Max = double.Parse(nums2.Split('-')[1]); double Odds = 0; int j = 0; foreach (string s in ListR) { bool isOk = false; j = 0; if (Types == 1)//Types = 1指数和 { Odds = 0; } else { Odds = 1; } foreach (int i in number) { if (s[i] != '*') { isOk = false; if (Types == 1)//Types = 1指数和 { switch (s[i]) { case '0': Odds += ListOdd[i].I0; break; case '1': Odds += ListOdd[i].I1; break; case '2': Odds += ListOdd[i].I2; break; case '3': Odds += ListOdd[i].I3; break; case '4': Odds += ListOdd[i].I4; break; case '5': Odds += ListOdd[i].I5; break; case '6': Odds += ListOdd[i].I6; break; case '7': Odds += ListOdd[i].I7; break; default: Odds += 0.00; break; } j++; } else { switch (s[i]) { case '0': Odds *= ListOdd[i].I0; break; case '1': Odds *= ListOdd[i].I1; break; case '2': Odds *= ListOdd[i].I2; break; case '3': Odds *= ListOdd[i].I3; break; case '4': Odds *= ListOdd[i].I4; break; case '5': Odds *= ListOdd[i].I5; break; case '6': Odds *= ListOdd[i].I6; break; case '7': Odds *= ListOdd[i].I7; break; default: Odds *= 1; break; } j++; } } else { isOk = true; } } if (isOk || Odds >= Min && Odds <= Max) { ListStr.Add(s); } } ListR.Clear(); ListR.AddRange(ListStr); ListStr.Clear(); } ListStr = ListR; return ListStr; }
//范围截取的(奖金最高、 概率最高)Types = 1 是奖金最高 Types = 2是概率最高 List<string> GetRangeBonus(int Min, int Types, List<string> ListR) { List<Netball> List = DataGrid1.ItemsSource as List<Netball>; List<SumIn> ListOdd = new List<SumIn>(); for (int i = 0; i < List.Count; i++) { //胜平负的赔率类 SumIn Odd = new SumIn(); Odd.I0 = List[i].In0; Odd.I1 = List[i].In1; Odd.I2 = List[i].In2; Odd.I3 = List[i].In3; Odd.I4 = List[i].In4; Odd.I5 = List[i].In5; Odd.I6 = List[i].In6; Odd.I7 = List[i].In7; Odd.id = List[i].Id; ListOdd.Add(Odd); } List<string> ListStr = new List<string>(); List<NumOrders> ListNumOrder = new List<NumOrders>(); int j = 0; double Odds = 1.00; #region foreach (string s in ListR) { NumOrders Orders = new NumOrders(); foreach (char c in s) { switch (c) { case '0': Odds *= ListOdd[j].I0; break; case '1': Odds *= ListOdd[j].I1; break; case '2': Odds *= ListOdd[j].I2; break; case '3': Odds *= ListOdd[j].I3; break; case '4': Odds *= ListOdd[j].I4; break; case '5': Odds *= ListOdd[j].I5; break; case '6': Odds *= ListOdd[j].I6; break; case '7': Odds *= ListOdd[j].I7; break; default: Odds *= 1; break; } j++; } Orders.Nums = s; Orders.Odds = Odds * 2; ListNumOrder.Add(Orders);//ListNumOrder里放的是 投注号码和号码赔率 j = 0; Odds = 1.00; } #endregion ListNumOrder.Sort(delegate(NumOrders order1, NumOrders order2) { return Comparer<double>.Default.Compare(order1.Odds, order2.Odds); }); if (Types == 1) { int k = 1; for (int i = ListNumOrder.Count - 1; i >= 0; i--) { if (k <= Min) { ListStr.Add(ListNumOrder[i].Nums); k++; } else { break; } } } else { for (int n = 0; n < ListNumOrder.Count; n++) { if (n < Min) { ListStr.Add(ListNumOrder[n].Nums); } else { break; } } } return ListStr; }
// 指数命中 List<string> GetIndex(int Min, int Max, string Types, List<string> ListR) { List<Netball> List = DataGrid1.ItemsSource as List<Netball>; List<List<NumOrders2>> listSort = new List<List<NumOrders2>>(); List<SumIn> ListOdd = new List<SumIn>(); for (int i = 0; i < List.Count; i++) { SumIn Odd = new SumIn(); List<NumOrders2> Num = new List<NumOrders2>(); Num.Add(new NumOrders2 { Nums = "0", Odds = Odd.I0 }); Num.Add(new NumOrders2 { Nums = "1", Odds = Odd.I1 }); Num.Add(new NumOrders2 { Nums = "2", Odds = Odd.I2 }); Num.Add(new NumOrders2 { Nums = "3", Odds = Odd.I3 }); Num.Add(new NumOrders2 { Nums = "4", Odds = Odd.I4 }); Num.Add(new NumOrders2 { Nums = "5", Odds = Odd.I5 }); Num.Add(new NumOrders2 { Nums = "6", Odds = Odd.I6 }); Num.Add(new NumOrders2 { Nums = "7", Odds = Odd.I7 }); Num.Sort(sortMethond); Odd.id = List[i].Id; ListOdd.Add(Odd); listSort.Add(Num); } List<string> ListStr = new List<string>(); int j = 0; #region string intdex1 = string.Empty; string intdex2 = string.Empty; List<List<NumOrders2>> listSelect = new List<List<NumOrders2>>(); foreach (string s in ListR) { j = 0; int count = 0; foreach (char c in s) { switch (Types) { case "第一二指数命中": intdex1 = listSort[j][0].Nums; intdex2 = listSort[j][1].Nums; break; case "第三四指数命中": intdex1 = listSort[j][2].Nums; intdex2 = listSort[j][3].Nums; break; case "第五六指数命中": intdex1 = listSort[j][4].Nums; intdex2 = listSort[j][5].Nums; break; case "第七八指数命中": intdex1 = listSort[j][6].Nums; intdex2 = listSort[j][7].Nums; break; } if (c == intdex1[0] || c == intdex2[0]) { count++; } //累加 j++; } if (count >= Min && count <= Max) { ListStr.Add(s); } } #endregion return ListStr; }
//指数过滤的(指数和、指数积) List<string> GetIndexSumProduct(double Min, double Max, int Types, List<string> ListR) { List<Netball> List = DataGrid1.ItemsSource as List<Netball>; List<SumIn> ListOdd = new List<SumIn>(); for (int i = 0; i < List.Count; i++) { //胜平负的赔率类 SumIn Odd = new SumIn(); Odd.I0 = List[i].In0; Odd.I1 = List[i].In1; Odd.I2 = List[i].In2; Odd.I3 = List[i].In3; Odd.I4 = List[i].In4; Odd.I5 = List[i].In5; Odd.I6 = List[i].In6; Odd.I7 = List[i].In7; Odd.id = List[i].Id; ListOdd.Add(Odd); } List<string> ListStr = new List<string>(); int j = 0; double Odds = 0.00; #region foreach (string s in ListR) { if (Types == 1)//Types = 1指数和 { foreach (char c in s) { switch (c) { case '0': Odds += ListOdd[j].I0; break; case '1': Odds += ListOdd[j].I1; break; case '2': Odds += ListOdd[j].I2; break; case '3': Odds += ListOdd[j].I3; break; case '4': Odds += ListOdd[j].I4; break; case '5': Odds += ListOdd[j].I5; break; case '6': Odds += ListOdd[j].I6; break; case '7': Odds += ListOdd[j].I7; break; default: Odds += 0.00; break; } j++; } } else//指数积 { Odds = 1.00; foreach (char c in s) { switch (c) { case '0': Odds *= ListOdd[j].I0; break; case '1': Odds *= ListOdd[j].I1; break; case '2': Odds *= ListOdd[j].I2; break; case '3': Odds *= ListOdd[j].I3; break; case '4': Odds *= ListOdd[j].I4; break; case '5': Odds *= ListOdd[j].I5; break; case '6': Odds *= ListOdd[j].I6; break; case '7': Odds *= ListOdd[j].I7; break; default: Odds *= 1.00; break; } j++; } } if (Types == 3) { //奖金 Odds *= 2; } if (Odds >= Min && Odds <= Max) { ListStr.Add(s); } j = 0; Odds = 0.00; } #endregion return ListStr; }