Есть и другие вопросы, такие как KeyValuePair vs. IDictionary, но я чувствую, что это немного отличается.
NameValueCollection
принимает строковый ключ и строковое значение.
KeyValuePair
похож на словарь, вы говорите ему, какой тип ключ и значение.
Я не понимаю, почему NameValueCollection
существует. Инициализация KeyValuePair
со строками типа кажется достаточной. Я также заметил, что NameValueCollection
имеет несколько доступных ему методов, но опять же, почему бы не объединить оба класса в один?