GraphNode[] GetOrCreateList () { // Note, the lists will never become larger than this initial capacity, so possibly they should be replaced by arrays return arrayCache.Count > 0 ? arrayCache.Pop() : new GraphNode[LeafArraySize]; }