Compartilhar via


Método System.Collections.ObjectModel.KeyedCollection<TKey,TItem>.ChangeItemKey

Este artigo fornece comentários complementares à documentação de referência para esta API.

O ChangeItemKey(TItem, TKey) método não modifica a chave inserida item; ele simplesmente substitui a chave salva no dicionário de pesquisa. Portanto, se newKey for diferente da chave inserida, você não poderá acessar item usando a chave retornada itempor GetKeyForItem.

Esse método não fará nada se KeyedCollection<TKey,TItem> não tiver um dicionário de pesquisa.

Cada chave em uma KeyedCollection<TKey,TItem> deve ser exclusiva. Uma chave não pode ser null.

Esse método é uma operação O(1).

Notas para implementadores

Antes de modificar a chave inserida em um item, você deve chamar esse método para atualizar a chave no dicionário de pesquisa. Se o limite de criação do dicionário for -1, chamar esse método não será necessário.

Não exponha o ChangeItemKey método como um método público de uma classe derivada. O uso indevido desse método coloca o dicionário de consulta fora de sincronia com as chaves dos itens. Por exemplo, definir a chave null e defini-la como outro valor adiciona várias chaves para um item ao dicionário de pesquisa. Exponha esse método internamente para permitir chaves de item mutáveis: quando a chave de um item é alterada, esse método é usado para alterar a chave no dicionário de pesquisa.