Как найти элемент в коллекции словаря?

Я объявил и заполнил следующую коллекцию.

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 ' Я с радостью воспользуюсь другой коллекцией, если она может быстро найти элемент и у меня есть способ определить, был ли он успешным.)

36
задан Jonathan Wood 11 November 2013 в 02:38
поделиться