public static PwObjectPool FromGroupRecursive(PwGroup pgRoot, bool bEntries) { if(pgRoot == null) throw new ArgumentNullException("pgRoot"); PwObjectPool p = new PwObjectPool(); if(!bEntries) p.m_dict[new PwUuidComparable(pgRoot.Uuid)] = pgRoot; GroupHandler gh = delegate(PwGroup pg) { p.m_dict[new PwUuidComparable(pg.Uuid)] = pg; return true; }; EntryHandler eh = delegate(PwEntry pe) { p.m_dict[new PwUuidComparable(pe.Uuid)] = pe; return true; }; pgRoot.TraverseTree(TraversalMethod.PreOrder, bEntries ? null : gh, bEntries ? eh : null); return p; }