public StringListManager OpenList(string request, ListFlags flags = ListFlags.Unchanged) // All lists are accessed through here, flags determine mode { StringListManager list; if (!ListCollection.TryGetValue(request, out list)) { list = new StringListManager(); ListCollection.Add(request, list); if (!flags.HasFlag(ListFlags.InMemory)) { list.Readfile(request); // If in memory, we never read from disk } } else { if (flags.HasFlag(ListFlags.Uncached)) { list.Readfile(request); // If Cache is off, ALWAYS re-read file. } } return(list); }