Я объявил и заполнил следующую коллекцию.
protected static Dictionary<string, string> _tags;
Теперь я хочу найти конкретную запись в коллекции. Я пробовал следующее.
thisTag = _tags.FirstOrDefault(t => t.Key == tag);
if (thisTag != default(KeyValuePair<string, string>))
...
И я получаю сообщение об ошибке:
Оператор '! =' Не может применяться к операндам типа 'System.Collections.Generic.KeyValuePair' и ''
Сначала я попытался сравнить результат с null
, и я полагаю, что это не поддерживается в struct
s.
Я бы подумал, что поиск элемента в коллекции - очень тривиальная задача. Так как же, черт возьми, определить, был ли найден искомый элемент?
(Примечание: я использую Словарь
, потому что мне нужен быстрый поиск. Я знаю, что могу использовать Содержит ()
, чтобы определить, есть ли там элемент. Но это означает, что в общей сложности выполняется два поиска, что не позволяет выполнять быстрый поиск. I ' Я с радостью воспользуюсь другой коллекцией, если она может быстро найти элемент и у меня есть способ определить, был ли он успешным.)