Trabalhando com Hashtables no Unity
Uma Hashtable é uma coleção de pares de chave-valor que permite que você armazene e recupere dados de forma eficiente. Cada chave em uma Hashtable deve ser única e é usada para acessar o valor correspondente. Em Unity, Hashtables são parte do namespace System.Collections
e podem ser particularmente úteis para armazenar estruturas de dados não genéricas.
Criando uma Hashtable
Para usar um Hashtable em Unity, primeiro você precisa importar o namespace System.Collections
e então inicializar um novo objeto Hashtable. Aqui está um exemplo:
using System.Collections;
using UnityEngine;
public class HashtableExample : MonoBehaviour
{
void Start()
{
Hashtable myHashtable = new Hashtable();
// Adding key-value pairs
myHashtable.Add("PlayerName", "Alex");
myHashtable.Add("Score", 1500);
myHashtable.Add("Level", 5);
// Accessing values
Debug.Log("Player Name: " + myHashtable["PlayerName"]);
Debug.Log("Score: " + myHashtable["Score"]);
Debug.Log("Level: " + myHashtable["Level"]);
}
}
Adicionando e acessando dados
Você pode adicionar dados a uma Hashtable usando o método Add
. Para recuperar um valor, use a chave dentro de colchetes:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Se uma chave já existir, tentar usar Add
lançará uma exceção. Em vez disso, use a chave diretamente para atualizar o valor:
myHashtable["Health"] = 80; // Updates the value associated with the key
Verificando chaves e valores
Para verificar se uma chave existe na Hashtable, use o método ContainsKey
. Da mesma forma, use ContainsValue
para verificar um valor:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Removendo Dados
Você pode remover uma entrada da Hashtable usando o método Remove
:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Iterando por uma Hashtable
Para iterar por todos os pares chave-valor em uma Hashtable, use um loop foreach
:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Limitações das Hashtables
Hashtables não são genéricos e não têm segurança de tipo. Se você precisa de melhor segurança de tipo e desempenho, considere usar o genérico Dictionary
do namespace System.Collections.Generic
. Hashtables são úteis principalmente ao trabalhar com coleções não genéricas ou ao interagir com bases de código mais antigas.
Conclusão
Hashtables em Unity fornecem uma maneira direta de gerenciar pares de chave-valor em seus projetos. Embora não sejam o tipo de coleção mais moderno, continuam sendo uma escolha válida para muitos cenários. Ao entender como criar, acessar e manipular Hashtables, você pode gerenciar dados de forma eficiente em seus aplicativos Unity.