public ListCollectionManager()
        {
            // Add an empty list so we can set various lists to empty
            var empty = new StringListManager();

            this.ListCollection.Add("empty", empty);
        }
 public StringListManager OpenList(string request, ListFlags flags = ListFlags.Unchanged) // All lists are accessed through here, flags determine mode
 {
     if (!this.ListCollection.TryGetValue(request, out var list))
     {
         list = new StringListManager();
         this.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);
 }