using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using CP.Cache; using CP.Common; using CP.Model; namespace CP.Business { public class Tchlj61 { /// /// 缓存 /// static WMCache cache = WMCache.GetCacheService(); /// /// cache中所有的61开奖信息 /// /// public static List GetTchlj61List() { string key = string.Format(CacheKeys.TCHLJ61_DATALIST); List list = cache.GetObject>(key) as List; if (list == null) { list = Tchlj61Data.GetTchlj61List(); cache.AddObject(key, list, (int)CacheTime.Data); } return list; } /// /// 取出开奖数据中最后一期的开奖数据 /// /// public static Tchlj61Info GetEndTchlj61Info(ref List list) { Tchlj61Info info = new Tchlj61Info(); if (list != null && list.Count > 0) return list[list.Count - 1]; return info; } /// /// 数据筛选 /// /// /// /// /// /// /// /// public static List GetTchlj61List(ref List list,int pagesize, int year, int sqi, int eqi, int week = 0, int ds = 0) { List rlist = new List(); int size = list.Count; if (pagesize > 0) { for (int i = (size - pagesize); i < size; i++) { rlist.Add(list[i]); } return rlist; } if (year > 0) { rlist.Clear(); for (int i = 0; i < size; i++) { if (TypeConverter.StrToInt(list[i].qi.ToString().Substring(0, 4), 0) == year) rlist.Add(list[i]); } return rlist; } if (week > 0) { rlist.Clear(); List temp = new List(); for (int i = 0; i < size; i++) { if (list[i].week == week) temp.Add(list[i]); } for (int i = (temp.Count - 120); i < temp.Count; i++) { rlist.Add(temp[i]); } return rlist; } if (ds > 0) { rlist.Clear(); List temp = new List(); for (int i = 0; i < size; i++) { if (ds == 1) { if (list[i].qi % 2 != 0) temp.Add(list[i]); } else if (ds == 2) { if (list[i].qi % 2 == 0) temp.Add(list[i]); } } for (int i = (temp.Count - 120); i < temp.Count; i++) { rlist.Add(temp[i]); } return rlist; } if (sqi > 0 && eqi > 0) { rlist.Clear(); int srank = GetTchlj61Info(ref list,sqi).rank; int erank = GetTchlj61Info(ref list,eqi).rank; if (erank != 0 && srank != 0 && erank > srank) { for (int i = srank - 1; i < erank && i < size; i++) { rlist.Add(list[i]); } } return rlist; } if (pagesize == 0 && year == 0 && sqi == 0 && eqi == 0 && week == 0 && ds == 0) return list; return rlist; } /// /// 遗漏上用到的黑龙江6+1数据.. /// /// /// public static List GetMissTchlj61List(ref List list, int eqi) { List rlist = new List(); if (eqi > 0) { int size = list.Count; int erank = GetTchlj61Info(ref list,eqi).rank; if (erank > 0) { for (int i = 0; i < erank && i < size; i++) { rlist.Add(list[i]); } } else { for (int i = 0; i < size; i++) { rlist.Add(list[i]); } } } else { rlist = list; } return rlist; } /// /// 根据期数获取上一期的数据... /// /// /// public static Tchlj61Info GetTchlj61Info(ref List list, int qi) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = 0; i < size; i++) { if (list[i].qi == qi) { info = list[i]; break; } } return info; } /// /// 根据排名取上一期的数据 /// /// /// public static Tchlj61Info GetLastQiTchlj61Info(ref List list, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (list[i].rank == rank - 1) { info = list[i]; return info; } } return info; } /// /// 根据排名取下一期的数据 /// /// /// public static Tchlj61Info GetNextQiTchlj61Info(ref List list, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 1; i < list.Count; i++) { if (list[i].rank == rank + 1) { info = list[i]; return info; } } return info; } #region 条件查询上一次出来时的数据 /// /// 某个位号码上一次的数据.. /// /// /// /// /// public static Tchlj61Info GetLastTchlj61Info(ref List list, int val, int rank, int type) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (type == 0 && list[i].n1 == val) { info = list[i]; return info; } if (type == 1 && list[i].n2 == val) { info = list[i]; return info; } if (type == 2 && list[i].n3 == val) { info = list[i]; return info; } if (type == 3 && list[i].n4 == val) { info = list[i]; return info; } if (type == 4 && list[i].n5 == val) { info = list[i]; return info; } if (type == 5 && list[i].n6 == val) { info = list[i]; return info; } if (type == 6 && list[i].n7 == val) { info = list[i]; return info; } List kjh = new List() { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6, list[i].n7 }; //组选分布时 if (type == 7 && kjh.Contains(val)) { info = list[i]; return info; } } return info; } /// /// 上一次和值奇偶形态的数据 /// val==0偶 /// val=1奇 /// /// /// /// public static Tchlj61Info GetLastHzJoTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { //偶 if (val == 0 && list[i].hz % 2 == 0) { info = list[i]; return info; } //奇 if (val == 1 && list[i].hz % 2 != 0) { info = list[i]; return info; } } return info; } /// /// 上一次和值大小的数据 /// /// /// /// public static Tchlj61Info GetLastHzDxTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetQxcHzDx(list[i].hz) == val) return list[i]; } return info; } /// /// 上一次和值的情况 /// /// /// /// /// public static Tchlj61Info GetlastTchlj61HzInfo(ref List list, int shz, int ehz, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (list[i].hz >= shz && list[i].hz <= ehz) { return list[i]; } } return info; } /// /// 上一次和尾的数据 /// /// /// /// public static Tchlj61Info GetLastHwTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetHw(list[i].hz) == val) { info = list[i]; return info; } } return info; } /// /// 和尾大小 /// /// /// /// public static Tchlj61Info GetLastHwDxTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { int hw = ZstUtils.GetHw(list[i].hz); if (ZstUtils.GetDx(hw) == val) { info = list[i]; return info; } } return info; } /// /// 和尾奇偶 /// /// /// /// public static Tchlj61Info GetLastHwJoTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { int hw = ZstUtils.GetHw(list[i].hz); if (ZstUtils.GetJo(hw) == val) { info = list[i]; return info; } } return info; } /// /// 和尾质合 /// /// /// /// public static Tchlj61Info GetLastHwZhTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { int hw = ZstUtils.GetHw(list[i].hz); if (ZstUtils.GetZh(hw) == val) { info = list[i]; return info; } } return info; } /// /// 和值质合 /// /// /// /// public static Tchlj61Info GetLastHzZhTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetZh(list[i].hz) == val) { info = list[i]; return info; } } return info; } /// /// 上一次和尾012路的情况 /// /// /// /// public static Tchlj61Info GetLastHw012Tchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { int hw = ZstUtils.GetHw(list[i].hz); if (ZstUtils.Get012(hw) == val) { info = list[i]; return info; } } return info; } /// /// 上一次和值012路的情况 /// /// /// /// public static Tchlj61Info GetLastHz012Tchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.Get012(list[i].hz) == val) { info = list[i]; return info; } } return info; } /// /// 上一次跨度=n的数据 /// /// /// /// public static Tchlj61Info GetLastKdTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (list[i].kd == val) { info = list[i]; return info; } } return info; } /// /// 跨度大小 /// /// /// /// public static Tchlj61Info GetLastKdDxTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetDx(list[i].kd) == val) { info = list[i]; return info; } } return info; } /// /// 跨度奇偶 /// /// /// /// public static Tchlj61Info GetLastKdJoTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetJo(list[i].kd) == val) { info = list[i]; return info; } } return info; } /// /// 跨度质合 /// /// /// /// public static Tchlj61Info GetLastKdZhTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.GetZh(list[i].kd) == val) { info = list[i]; return info; } } return info; } /// /// 上一次跨度012路的情况 /// /// /// /// public static Tchlj61Info GetLastKd012Tchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (ZstUtils.Get012(list[i].kd) == val) { info = list[i]; return info; } } return info; } /// /// 上一次跨度振幅的数据 /// /// /// /// public static Tchlj61Info GetLastKdZfTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (i > 0) { if (Math.Abs(list[i].kd - list[i - 1].kd) == val) { info = list[i]; return info; } } } return info; } /// /// 上一次和值的数据 /// /// /// /// public static Tchlj61Info GetLastHzTchlj61Info(ref List list, int val, int rank) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (val < 21 && list[i].hz < 21) { info = list[i]; return info; } if (val > 38 && list[i].hz > 38) { info = list[i]; return info; } if (list[i].hz == val) { info = list[i]; return info; } } return info; } /// /// 上一次某位号码重号的数据 /// /// public static Tchlj61Info GetLastNChTchlj61Info(ref List list, int rank, int type) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (type == 0) { if (i > 0) { if ((list[i].n1 - list[i - 1].n1) == 0) return list[i]; } } if (type == 1) { if (i > 0) { if ((list[i].n2 - list[i - 1].n2) == 0) return list[i]; } } if (type == 2) { if (i > 0) { if ((list[i].n3 - list[i - 1].n3) == 0) return list[i]; } } if (type == 3) { if (i > 0) { if ((list[i].n4 - list[i - 1].n4) == 0) return list[i]; } } if (type == 4) { if (i > 0) { if ((list[i].n5 - list[i - 1].n5) == 0) return list[i]; } } if (type == 5) { if (i > 0) { if ((list[i].n6 - list[i - 1].n6) == 0) return list[i]; } } if (type == 6) { if (i > 0) { if ((list[i].n7 - list[i - 1].n7) == 0) return list[i]; } } } return info; } /// /// 非重号的数据 /// /// /// /// public static Tchlj61Info GetLastNNotChTchlj61Info(ref List list, int rank, int type) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (type == 0) { if (i > 0) { if ((list[i].n1 - list[i - 1].n1) != 0) return list[i]; } } if (type == 1) { if (i > 0) { if ((list[i].n2 - list[i - 1].n2) != 0) return list[i]; } } if (type == 2) { if (i > 0) { if ((list[i].n3 - list[i - 1].n3) != 0) return list[i]; } } if (type == 3) { if (i > 0) { if ((list[i].n4 - list[i - 1].n4) != 0) return list[i]; } } if (type == 4) { if (i > 0) { if ((list[i].n5 - list[i - 1].n5) != 0) return list[i]; } } if (type == 5) { if (i > 0) { if ((list[i].n6 - list[i - 1].n6) != 0) return list[i]; } } if (type == 6) { if (i > 0) { if ((list[i].n7 - list[i - 1].n7) != 0) return list[i]; } } } return info; } #region 上一次某个号码的大小情况 /// /// 上一次某个号码大小的情况 /// /// /// /// /// public static Tchlj61Info GetLastNdxInfo(ref List list, int dx, int rank, int site) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (site == 0) { if (ZstUtils.GetDx(list[i].n1) == dx) { info = list[i]; return info; } } if (site == 1) { if (ZstUtils.GetDx(list[i].n2) == dx) { info = list[i]; return info; } } if (site == 2) { if (ZstUtils.GetDx(list[i].n3) == dx) { info = list[i]; return info; } } if (site == 3) { if (ZstUtils.GetDx(list[i].n4) == dx) { info = list[i]; return info; } } if (site == 5) { if (ZstUtils.GetDx(list[i].n6) == dx) { info = list[i]; return info; } } if (site == 6) { if (ZstUtils.GetDx(list[i].n7) == dx) { info = list[i]; return info; } } } return info; } #endregion #region 奇偶形态的上一次数据 /// /// 开奖号某位上的上一次奇偶数据.. /// /// /// /// /// public static Tchlj61Info GetLastNjoInfo(ref List list, int jo, int rank, int site) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (site == 0) { if (ZstUtils.GetJo(list[i].n1) == jo) { info = list[i]; return info; } } if (site == 1) { if (ZstUtils.GetJo(list[i].n2) == jo) { info = list[i]; return info; } } if (site == 2) { if (ZstUtils.GetJo(list[i].n3) == jo) { info = list[i]; return info; } } if (site == 3) { if (ZstUtils.GetJo(list[i].n4) == jo) { info = list[i]; return info; } } if (site == 4) { if (ZstUtils.GetJo(list[i].n5) == jo) { info = list[i]; return info; } } if (site == 5) { if (ZstUtils.GetJo(list[i].n6) == jo) { info = list[i]; return info; } } if (site == 6) { if (ZstUtils.GetJo(list[i].n7) == jo) { info = list[i]; return info; } } } return info; } #endregion #region 质号形态的上一次数据 /// /// 开奖号某位上的上一次质合数据.. /// /// /// /// /// public static Tchlj61Info GetLastNzhInfo(ref List list, int jo, int rank, int site) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (site == 0) { if (ZstUtils.GetZh(list[i].n1) == jo) { info = list[i]; return info; } } if (site == 1) { if (ZstUtils.GetZh(list[i].n2) == jo) { info = list[i]; return info; } } if (site == 2) { if (ZstUtils.GetZh(list[i].n3) == jo) { info = list[i]; return info; } } if (site == 3) { if (ZstUtils.GetZh(list[i].n4) == jo) { info = list[i]; return info; } } if (site == 4) { if (ZstUtils.GetZh(list[i].n5) == jo) { info = list[i]; return info; } } if (site == 5) { if (ZstUtils.GetZh(list[i].n6) == jo) { info = list[i]; return info; } } if (site == 6) { if (ZstUtils.GetZh(list[i].n7) == jo) { info = list[i]; return info; } } } return info; } #endregion #region 012路形态的上一次数据 /// /// 开奖号某位上的上一次012路数据.. /// /// /// /// /// public static Tchlj61Info GetLastN012Info(ref List list, int jo, int rank, int site) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (site == 0) { if (ZstUtils.Get012(list[i].n1) == jo) { info = list[i]; return info; } } if (site == 1) { if (ZstUtils.Get012(list[i].n2) == jo) { info = list[i]; return info; } } if (site == 2) { if (ZstUtils.Get012(list[i].n3) == jo) { info = list[i]; return info; } } if (site == 3) { if (ZstUtils.Get012(list[i].n4) == jo) { info = list[i]; return info; } } if (site == 4) { if (ZstUtils.Get012(list[i].n5) == jo) { info = list[i]; return info; } } if (site == 5) { if (ZstUtils.Get012(list[i].n6) == jo) { info = list[i]; return info; } } if (site == 6) { if (ZstUtils.Get012(list[i].n7) == jo) { info = list[i]; return info; } } } return info; } #endregion #region 上一次某个号码振幅的数据 /// /// 上一次某个号码振幅的数据 /// /// /// /// /// public static Tchlj61Info GetLastNZfInfo(ref List list, int zf, int rank, int type) { Tchlj61Info info = new Tchlj61Info(); int size = list.Count; for (int i = rank - 2; i >= 0; i--) { if (i > 0) { if (type == 0) { if (Math.Abs(list[i].n1 - list[i - 1].n1) == zf) { info = list[i]; return info; } } if (type == 1) { if (Math.Abs(list[i].n2 - list[i - 1].n2) == zf) { info = list[i]; return info; } } if (type == 2) { if (Math.Abs(list[i].n3 - list[i - 1].n3) == zf) { info = list[i]; return info; } } if (type == 3) { if (Math.Abs(list[i].n4 - list[i - 1].n4) == zf) { info = list[i]; return info; } } if (type == 4) { if (Math.Abs(list[i].n5 - list[i - 1].n5) == zf) { info = list[i]; return info; } } if (type == 5) { if (Math.Abs(list[i].n6 - list[i - 1].n6) == zf) { info = list[i]; return info; } } if (type == 6) { if (Math.Abs(list[i].n7 - list[i - 1].n7) == zf) { info = list[i]; return info; } } } } return info; } #endregion #endregion #region 冷热号 /// /// 百十个位上的某个号码最近size期是否有出现过. /// 出现过为热,否则为冷号 /// /// /// /// /// public static bool GetTchlj61HmLrInfo(ref List list, int val, int type, int size, int rank) { Tchlj61Info info = new Tchlj61Info(); info = GetLastTchlj61Info(ref list,val, rank, type); if ((rank - info.rank) <= size) return true; return false; } /// /// 上一次某位号码是冷/热号的情况.. /// /// /// /// public static Tchlj61Info GetTchlj61LastHmHrInfo(ref List list, int type, int size, int rank, bool iscool) { Tchlj61Info info = new Tchlj61Info(); if (list != null && list.Count > 0) { for (int i = rank - 2; i >= 0; i--) { if (iscool) { if (type == 0) { if (!GetTchlj61HmLrInfo(ref list,list[i].n1, type, size, list[i].rank)) return list[i]; } if (type == 1) { if (!GetTchlj61HmLrInfo(ref list,list[i].n2, type, size, list[i].rank)) return list[i]; } if (type == 2) { if (!GetTchlj61HmLrInfo(ref list,list[i].n3, type, size, list[i].rank)) return list[i]; } if (type == 3) { if (!GetTchlj61HmLrInfo(ref list,list[i].n4, type, size, list[i].rank)) return list[i]; } if (type == 4) { if (!GetTchlj61HmLrInfo(ref list,list[i].n5, type, size, list[i].rank)) return list[i]; } if (type == 5) { if (!GetTchlj61HmLrInfo(ref list,list[i].n6, type, size, list[i].rank)) return list[i]; } if (type == 6) { if (!GetTchlj61HmLrInfo(ref list,list[i].n7, type, size, list[i].rank)) return list[i]; } } if (!iscool) { if (type == 0) { if (GetTchlj61HmLrInfo(ref list,list[i].n1, type, size, list[i].rank)) return list[i]; } if (type == 1) { if (GetTchlj61HmLrInfo(ref list,list[i].n2, type, size, list[i].rank)) return list[i]; } if (type == 2) { if (GetTchlj61HmLrInfo(ref list,list[i].n3, type, size, list[i].rank)) return list[i]; } if (type == 3) { if (GetTchlj61HmLrInfo(ref list,list[i].n4, type, size, list[i].rank)) return list[i]; } if (type == 4) { if (GetTchlj61HmLrInfo(ref list,list[i].n5, type, size, list[i].rank)) return list[i]; } if (type == 5) { if (GetTchlj61HmLrInfo(ref list,list[i].n6, type, size, list[i].rank)) return list[i]; } if (type == 6) { if (GetTchlj61HmLrInfo(ref list,list[i].n7, type, size, list[i].rank)) return list[i]; } } } } return info; } #endregion #region 最近n期形态=x的数据列表 /// /// 和尾 /// /// public static List GetFcQlcListByHw(ref List list, int val) { List rlist = new List(); if (list != null && list.Count > 0) { int size = list.Count; for (int i = 0; i < size; i++) { if (ZstUtils.GetHw(list[i].hz) == val) rlist.Add(list[i]); } } return rlist; } /// /// 所有跨度.. /// /// /// public static List GetFcQlcListByKd(ref List list, int val) { List rlist = new List(); if (list != null && list.Count > 0) { int size = list.Count; for (int i = 0; i < size; i++) { if (list[i].kd == val) rlist.Add(list[i]); } } return rlist; } /// /// 所有基本号中包括val的数据 /// /// /// public static List GetFcQlcListByRed(ref List list, int red) { List rlist = new List(); if (list != null && list.Count > 0) { int size = list.Count; for (int i = 0; i < size; i++) { List kjh = new List() { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6, list[i].n7 }; if (kjh.Contains(red)) rlist.Add(list[i]); } } return rlist; } #endregion #region 开奖公告相关方法 /// /// 大乐透最近30期开奖数据,完整开奖信息,有缓存 /// /// public static List GetTchlj61ListTop30() { string key = string.Format(CacheKeys.TCHLJ61_KJH_DATA); List list = cache.GetObject>(key) as List; if (list == null) { list = Tchlj61Data.GetTchlj61Top30(); cache.AddObject(key, list, (int)CacheTime.Kjh); } return list; } /// /// 获取最新一期开奖信息,完整开奖信息,有缓存 /// /// public static Tchlj61LongInfo GetTchlj61InfoTop1(ref List list) { Tchlj61LongInfo info = new Tchlj61LongInfo(); if (list.Count > 0) { info = list[0]; } return info; } /// /// 根据期数返回某期完整开奖信息,无缓存 /// /// /// public static Tchlj61LongInfo GetTchlj61InfoByqi(int qi) { return Tchlj61Data.GetTchlj61InfoByQi(qi); } /// /// 返回某年对应的期数列表,有缓存 /// /// /// public static List GetTchlj61QiListByYear(int year) { string key = string.Format(CacheKeys.TCHLJ61_KJH_DATA + "/qilistbyyear/{0}", year); List list = cache.GetObject>(key) as List; if (list == null) { list = Tchlj61Data.GetTchlj61QiListByYear(year); cache.AddObject(key, list, (int)CacheTime.System); } return list; } #endregion } }