private Topic findOther(Topic current, string key) { if (key.EqualsIgnoreCase("{next}")) { return current.FindNext(); } if (key.EqualsIgnoreCase("{previous}")) { return current.FindPrevious(); } var corrected = ToAbsoluteKey(current.Key, key); var topic = _top.FindByKey(corrected); if (topic == null) { throw new ArgumentOutOfRangeException(nameof(key), $"Cannot find a topic with key '{corrected}'"); } return topic; }