/// <summary> /// 线长分布 /// </summary> /// <param name="lt_lotterys"></param> /// <param name="type"></param> /// <returns></returns> private PieData getSomeRangePie(List <Tendency2Model> lt_lotterys, EnumLotteryPatter type = 0) { string strType = null; switch (type) { case EnumLotteryPatter.Big: strType = "大大"; break; case EnumLotteryPatter.Small: strType = "小小"; break; case EnumLotteryPatter.BigSmall: strType = "大小"; break; case EnumLotteryPatter.SmallBig: strType = "小大"; break; case EnumLotteryPatter.Dbl: strType = "重重"; break; case EnumLotteryPatter.Odd: strType = "奇奇"; break; case EnumLotteryPatter.Pair: strType = "偶偶"; break; case EnumLotteryPatter.OddPair: strType = "奇偶"; break; case EnumLotteryPatter.PairOdd: strType = "偶奇"; break; } PieData pie = new PieData() { Name = strType }; List <Tendency2Model> lt_0 = null; switch (type) { case EnumLotteryPatter.Big: lt_0 = lt_lotterys.Where(l => l.Big == 0).ToList(); break; case EnumLotteryPatter.Small: lt_0 = lt_lotterys.Where(l => l.Small == 0).ToList(); break; case EnumLotteryPatter.BigSmall: lt_0 = lt_lotterys.Where(l => l.BigSmall == 0).ToList(); break; case EnumLotteryPatter.SmallBig: lt_0 = lt_lotterys.Where(l => l.SmallBig == 0).ToList(); break; case EnumLotteryPatter.Dbl: lt_0 = lt_lotterys.Where(l => l.Dbl == 0).ToList(); break; case EnumLotteryPatter.Odd: lt_0 = lt_lotterys.Where(l => l.Odd == 0).ToList(); break; case EnumLotteryPatter.Pair: lt_0 = lt_lotterys.Where(l => l.Pair == 0).ToList(); break; case EnumLotteryPatter.OddPair: lt_0 = lt_lotterys.Where(l => l.OddPair == 0).ToList(); break; case EnumLotteryPatter.PairOdd: lt_0 = lt_lotterys.Where(l => l.PairOdd == 0).ToList(); break; } List <Tendency2Model> lt_sno = new List <Tendency2Model>(); lt_0.ForEach(item => { if (int.Parse(item.Sno) > 0) { lt_sno.Add(new Tendency2Model() { Ymd = item.Ymd, Sno = (int.Parse(item.Sno) - 1).ToString().PadLeft(4, '0') }); } }); //效率高 List <Tendency2Model> lt_Result = (from a in lt_lotterys join b in lt_sno on new { a.Ymd, a.Sno } equals new { b.Ymd, b.Sno } select a).ToList(); ///效率低 //lt_sno.ForEach(item => //{ // var ll = lt_lotterys.Where(l => l.Ymd == item.Ymd && l.Sno == item.Sno).FirstOrDefault(); // if (ll != null) // { // lt_Result.Add(ll); // } //}); List <PieDataCount> lt_count = null; switch (type) { case EnumLotteryPatter.Big: lt_count = lt_Result.GroupBy(l => l.Big).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Small: lt_count = lt_Result.GroupBy(l => l.Small).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.BigSmall: lt_count = lt_Result.GroupBy(l => l.BigSmall).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.SmallBig: lt_count = lt_Result.GroupBy(l => l.SmallBig).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Dbl: lt_count = lt_Result.GroupBy(l => l.Dbl).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Odd: lt_count = lt_Result.GroupBy(l => l.Odd).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Pair: lt_count = lt_Result.GroupBy(l => l.Pair).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.OddPair: lt_count = lt_Result.GroupBy(l => l.OddPair).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.PairOdd: lt_count = lt_Result.GroupBy(l => l.PairOdd).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; } lt_count.ForEach(item => { item.Num = item.Num.PadLeft(2, '0') + ":" + item.Count.ToString(); }); string per = ((lt_0.Count / (double)lt_lotterys.Count) * 100).ToString("f2") + "%"; pie.Name = pie.Name + "(max:" + lt_count.Max(l => l.Num) + ")"; pie.SubName = "p.c: " + lt_0.Count + "/" + lt_lotterys.Count + " = " + per; pie.List = lt_count.OrderBy(l => l.Num).ToList(); return(pie); }
/// <summary> /// 时间分布 /// </summary> /// <param name="lt_lotterys"></param> /// <param name="type"></param> /// <returns></returns> private PieData getSomeRangeTimePie(List <Tendency2Model> lt_lotterys, EnumLotteryPatter type = 0) { string strType = null; switch (type) { case EnumLotteryPatter.Big: strType = "大大"; break; case EnumLotteryPatter.Small: strType = "小小"; break; case EnumLotteryPatter.BigSmall: strType = "大小"; break; case EnumLotteryPatter.SmallBig: strType = "小大"; break; case EnumLotteryPatter.Dbl: strType = "重重"; break; case EnumLotteryPatter.Odd: strType = "奇奇"; break; case EnumLotteryPatter.Pair: strType = "偶偶"; break; case EnumLotteryPatter.OddPair: strType = "奇偶"; break; case EnumLotteryPatter.PairOdd: strType = "偶奇"; break; } PieData pie = new PieData() { Name = strType }; List <Tendency2Model> lt_0 = null; switch (type) { case EnumLotteryPatter.Big: lt_0 = lt_lotterys.Where(l => l.Big == 0).ToList(); break; case EnumLotteryPatter.Small: lt_0 = lt_lotterys.Where(l => l.Small == 0).ToList(); break; case EnumLotteryPatter.BigSmall: lt_0 = lt_lotterys.Where(l => l.BigSmall == 0).ToList(); break; case EnumLotteryPatter.SmallBig: lt_0 = lt_lotterys.Where(l => l.SmallBig == 0).ToList(); break; case EnumLotteryPatter.Dbl: lt_0 = lt_lotterys.Where(l => l.Dbl == 0).ToList(); break; case EnumLotteryPatter.Odd: lt_0 = lt_lotterys.Where(l => l.Odd == 0).ToList(); break; case EnumLotteryPatter.Pair: lt_0 = lt_lotterys.Where(l => l.Pair == 0).ToList(); break; case EnumLotteryPatter.OddPair: lt_0 = lt_lotterys.Where(l => l.OddPair == 0).ToList(); break; case EnumLotteryPatter.PairOdd: lt_0 = lt_lotterys.Where(l => l.PairOdd == 0).ToList(); break; } ///05/24 06:34 lt_0.ForEach(item => { if (!string.IsNullOrEmpty(item.Dtime) && item.Dtime.Length == 11) { item.Dtime = item.Dtime.Substring(6, 2);//取小时 } }); List <PieDataCount> lt_count = lt_0.GroupBy(l => l.Dtime).Select(l => (new PieDataCount() { Num = l.Key, Count = l.Count() })).ToList(); string per = ((lt_0.Count / (double)lt_lotterys.Count) * 100).ToString("f2") + "%"; pie.Name = pie.Name + "(max:" + lt_count.Max(l => l.Num) + ")"; pie.SubName = "p.c: " + lt_0.Count + "/" + lt_lotterys.Count + " = " + per; pie.List = lt_count.OrderBy(l => l.Num).ToList(); return(pie); }
private PieData getSomePie(List <Tendency2Model> lt_lotterys, EnumLotteryPatter type = 0) { string strType = null; switch (type) { case EnumLotteryPatter.Big: strType = "大大"; break; case EnumLotteryPatter.Small: strType = "小小"; break; case EnumLotteryPatter.BigSmall: strType = "大小"; break; case EnumLotteryPatter.SmallBig: strType = "小大"; break; case EnumLotteryPatter.Dbl: strType = "重重"; break; case EnumLotteryPatter.Odd: strType = "奇奇"; break; case EnumLotteryPatter.Pair: strType = "偶偶"; break; case EnumLotteryPatter.OddPair: strType = "奇偶"; break; case EnumLotteryPatter.PairOdd: strType = "偶奇"; break; } PieData pie = new PieData() { Name = strType }; List <Tendency2Model> lt_Result = new List <Tendency2Model>(); List <Tendency2Model> lt_0 = null; switch (type) { case EnumLotteryPatter.Big: lt_0 = lt_lotterys.Where(l => l.Big == 0).ToList(); break; case EnumLotteryPatter.Small: lt_0 = lt_lotterys.Where(l => l.Small == 0).ToList(); break; case EnumLotteryPatter.BigSmall: lt_0 = lt_lotterys.Where(l => l.BigSmall == 0).ToList(); break; case EnumLotteryPatter.SmallBig: lt_0 = lt_lotterys.Where(l => l.SmallBig == 0).ToList(); break; case EnumLotteryPatter.Dbl: lt_0 = lt_lotterys.Where(l => l.Dbl == 0).ToList(); break; case EnumLotteryPatter.Odd: lt_0 = lt_lotterys.Where(l => l.Odd == 0).ToList(); break; case EnumLotteryPatter.Pair: lt_0 = lt_lotterys.Where(l => l.Pair == 0).ToList(); break; case EnumLotteryPatter.OddPair: lt_0 = lt_lotterys.Where(l => l.OddPair == 0).ToList(); break; case EnumLotteryPatter.PairOdd: lt_0 = lt_lotterys.Where(l => l.PairOdd == 0).ToList(); break; } List <string> lt_sno = new List <string>(); lt_0.ForEach(item => { if (int.Parse(item.Sno) > 0) { lt_sno.Add((int.Parse(item.Sno) - 1).ToString().PadLeft(4, '0')); } }); lt_sno.ForEach(item => { var ll = lt_lotterys.Where(l => l.Sno == item).FirstOrDefault(); if (ll != null) { lt_Result.Add(ll); } }); List <PieDataCount> lt_count = null; switch (type) { case EnumLotteryPatter.Big: lt_count = lt_Result.GroupBy(l => l.Big).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Small: lt_count = lt_Result.GroupBy(l => l.Small).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.BigSmall: lt_count = lt_Result.GroupBy(l => l.BigSmall).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.SmallBig: lt_count = lt_Result.GroupBy(l => l.SmallBig).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Dbl: lt_count = lt_Result.GroupBy(l => l.Dbl).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Odd: lt_count = lt_Result.GroupBy(l => l.Odd).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.Pair: lt_count = lt_Result.GroupBy(l => l.Pair).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.OddPair: lt_count = lt_Result.GroupBy(l => l.OddPair).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; case EnumLotteryPatter.PairOdd: lt_count = lt_Result.GroupBy(l => l.PairOdd).Select(l => (new PieDataCount() { Num = l.Key.ToString(), Count = l.Count() })).ToList(); break; } string per = ((lt_0.Count / (double)lt_lotterys.Count) * 100).ToString("f2") + "%"; pie.Name = pie.Name + "(max:" + lt_count.Max(l => l.Num) + ")"; pie.SubName = "p.c:" + lt_0.Count + "-" + per; pie.List = lt_count.OrderBy(l => l.Num).ToList(); return(pie); }