public override bool Equals(object obj) { if (!(obj is DistanceModel)) { return(false); } DistanceModel model = (DistanceModel)obj; return(PreNumber == model.PreNumber && this.PosNumber == model.PosNumber); }
private void CreateDistanceTableSpeedVer(Dictionary <int, LotteryListRecord> listModels, Dictionary <int, Dictionary <DistanceModel, int> > timeDataTable, Dictionary <int, Dictionary <DistanceModel, int> > timeToSPdataTable, int maxNumber, int maxNumberSP) { List <int> numberList = new List <int>(); for (int i = 1; i <= maxNumber; i++) { numberList.Add(i); } List <int> spNumberList = new List <int>(); for (int i = 1; i <= maxNumberSP; i++) { spNumberList.Add(i); } for (int i = 1; i < listModels.Count; i++) { timeDataTable.Add(i, new Dictionary <DistanceModel, int>()); timeToSPdataTable.Add(i, new Dictionary <DistanceModel, int>()); foreach (var preNum in numberList) { foreach (var posNum in numberList) { timeDataTable[i].Add(new DistanceModel { PreNumber = preNum, PosNumber = posNum }, 0); } } foreach (var preNum in spNumberList) { foreach (var posNum in spNumberList) { timeToSPdataTable[i].Add(new DistanceModel { PreNumber = preNum, PosNumber = posNum }, 0); } } } int firstIndex = listModels.OrderBy(p => p.Key).First().Key; int lastIndex = listModels.OrderByDescending(p => p.Key).First().Key; for (int posIndex = firstIndex + 1; posIndex <= lastIndex; posIndex++) { for (int preIndex = firstIndex; preIndex < posIndex; preIndex++) { int distance = posIndex - preIndex; foreach (int preNum in listModels[preIndex].NormalList) { foreach (int posNum in listModels[posIndex].NormalList) { timeDataTable[distance][new DistanceModel { PreNumber = preNum, PosNumber = posNum }]++; } } DistanceModel codeSp = new DistanceModel { PreNumber = listModels[preIndex].Sp, PosNumber = listModels[posIndex].Sp }; timeToSPdataTable[distance][codeSp]++; } } }