private IKnowledge GetFullKnowledge(int day) { if (FullKnowledgeList.ContainsKey(day)) { return(FullKnowledgeList[day]); } var dayKnowledge = KnowledgeDict[day]; if (day < 1) { throw new System.Exception(); } if (day == 1) { return(dayKnowledge); } var prevDayKnowledge = GetFullKnowledge(day - 1); var result = new Combine2Knowledge(prevDayKnowledge, dayKnowledge); FullKnowledgeList.Add(day, result); return(result); }
public void AddDayKnowledge(int day, IKnowledge knowledge) { if (KnowledgeDict.ContainsKey(day)) { var prevKnowlede = KnowledgeDict[day]; KnowledgeDict[day] = new Combine2Knowledge(prevKnowlede, knowledge); return; } KnowledgeDict.Add(day, knowledge); }