private void AddText() { var value = Text; if (string.IsNullOrWhiteSpace(value)) { return; } var previous = _filtersHistory.TakeWhile(x => !string.Equals(x, value, StringComparison.OrdinalIgnoreCase)).Count(); if (previous < _filtersHistory.Count) { _filtersHistory.Move(previous, 0); } else if (DateTime.Now - _lastChanged > TimeSpan.FromSeconds(4) || _filtersHistory.Count == 0) { if (_filtersHistory.Count > MaxSize) { _filtersHistory.RemoveAt(_filtersHistory.Count - 1); } _filtersHistory.Insert(0, value); } else { _filtersHistory[0] = value; } _lastChanged = DateTime.Now; var saveKey = SaveKey; if (saveKey != null) { ValuesStorage.Set(saveKey, _filtersHistory); } }