qualquer motivo para não usar um dicionário
-
27-09-2019 - |
Pergunta
Eu estava discutindo com um colega de trabalho sobre se é melhor usar um dicionário e repovoar-o sempre que um conjunto de resultados muda ou apenas usar o LINQ Loop sobre todos os elementos da lista a cada vez.
Estamos tentando mapear um relacionamento pai / filho, e sugeri o uso do pai como chave do dicionário e o valor do dicionário como objeto personalizado.
Normalmente, precisaremos iterar sobre todos os pais / filhos e atingir a lista.
Existe alguma razão para você não querer usar um dicionário nessa circunstância? Se sim, o que você usaria em vez disso
Solução
Se você realmente precisar iterar em toda a coleção sempre, não haveria muito (se houver) benefício em ter um Dictionary
. Por outro lado, se você ocasionalmente precisar localizar instâncias específicas por suas chaves, Dictionary
Pode ser o que você precisa.
Observe que, mesmo se você estiver usando um dicionário, você ainda pode iterar através da lista de valores quando necessário, para não muito mais 'peso' do que iterando através de um normal List
, mas você ainda teria os recursos de dicionário, se necessário.
Outras dicas
Em termos de desempenho, ele realmente dependerá do seu aplicativo específico, para que você precise testar.