9using System.Collections.Generic;
17 internal class SortedMap : ISortedMap
19 private readonly List<string> indexEntries;
20 private readonly Dictionary<IFormattableText, int> index;
21 private List<IFormattableText> keys;
26 public int Count {
get;
private set; }
31 public IEnumerable<IFormattableText> Keys => keys;
36 int ISortedMap.Count => keys.Count;
43 keys =
new List<IFormattableText>();
44 indexEntries =
new List<string>();
45 index =
new Dictionary<IFormattableText, int>();
55 public string Add(IFormattableText text,
string referenceIndex)
57 if (index.ContainsKey(text))
59 return indexEntries[index[text]];
61 index.Add(text, Count);
64 indexEntries.Add(referenceIndex);
65 return referenceIndex;
74 string ISortedMap.Add(IFormattableText text,
string referenceIndex)
76 return Add(text, referenceIndex);