public override Distribution Copy() { LongDistribution copyDistribution = new LongDistribution() { distribution = new Dictionary <int, List <DistributionUnit> >() }; foreach (var unitPair in this.distribution) { var copyUnits = new List <DistributionUnit>(); foreach (var unit in unitPair.Value) { copyUnits.Add(unit.Clone() as DistributionUnit); } copyDistribution.distribution.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(); } } }