Qual é a diferença entre uma Lista de KeyValuePair e um Dicionário para os mesmos tipos? Existe um momento apropriado para usar um ou outro?
c#
dictionary
Cadáver
fonte
fonte
Resumindo, a lista não impõe exclusividade da chave, então se você precisa dessa semântica, então é o que você deve usar.
fonte
Dicionário é um tipo genérico que contém uma coleção de pares de valores-chave. O dicionário é rápido para operações de pesquisa, porque usa a função hash internamente . Isso significa que todas as chaves devem ser exclusivas no dicionário .
Considere estes exemplos:
Portanto, você deve sempre considerar duas, pelo menos, duas coisas:
fonte
A lista também seria útil quando você se preocupasse com a ordem dos itens.
fonte
Na sequência da resposta de Phillip Ngan, SOAP ou outro, você não pode serializar XML objetos que implementam IDictionary.
daqui
fonte
Em serviços da web SOAP para silverlight, descobrimos que os dicionários não serializam. Esta seria uma situação em que você usaria uma Lista de KeyValuePair sobre um Dicionário.
.
fonte
De http://blogs.msdn.com/bclteam/archive/2004/09/03/225473.aspx :
fonte