public override Distribution Copy() { ShortCrazyDistribution copyDistribution = new ShortCrazyDistribution() { distribution = new Dictionary <int, List <DistributionUnit> >(), TodayPlans = new Dictionary <int, List <DistributionUnit> >(), TomorrowPlans = new Dictionary <int, List <DistributionUnit> >() }; foreach (var unitPair in this.distribution) { var copyUnits = GetUnitsCopy(unitPair.Value); copyDistribution.distribution.Add(unitPair.Key, copyUnits); } foreach (var unitPair in this.TodayPlans) { var copyUnits = GetUnitsCopy(unitPair.Value); copyDistribution.TodayPlans.Add(unitPair.Key, copyUnits); } foreach (var unitPair in this.TomorrowPlans) { var copyUnits = GetUnitsCopy(unitPair.Value); copyDistribution.TomorrowPlans.Add(unitPair.Key, copyUnits); } return(copyDistribution); }
private static void InitSolutionSet() { distributions = new Distribution[GroupCount]; for (int i = 0; i < GroupCount; ++i) { switch (Constant.PlanType) { case ModelType.LONG: distributions[i] = new LongDistribution(); break; case ModelType.SHORT: distributions[i] = new ShortDistribution(); break; case ModelType.SHORT_CRAZY: distributions[i] = new ShortCrazyDistribution(); break; default: throw new InvalidModelTypeException(); } } }