Dictionary C#
A classe Dictionary representa uma lista de chaves e valores, onde é necessário utilizar uma chave única para identificar um valor qualquer (int, string, classe).
Para manipular esse objeto é como uma lista qualquer, com a diferença que no final das contas é com uma matriz que estamos lidando.
Para manipular esse objeto é como uma lista qualquer, com a diferença que no final das contas é com uma matriz que estamos lidando.
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("chave1", "valor1");
dict.Add("chave2", "valor2");
dict.Add("chave3", "valor3");
dict.Add("chave1", "valor1");
dict.Add("chave2", "valor2");
dict.Add("chave3", "valor3");
Para retornarmos por exemplo o valor3 em uma string devemos usar:
string teste = dict["chave3"];
string teste = dict["chave3"];
Caso for setado um valor a uma chave que não existe ela será criada:
dict["chave4"] = "valorTeste;
A chave4 será adicionada com o "valorTeste".
dict["chave4"] = "valorTeste;
A chave4 será adicionada com o "valorTeste".
A chave sempre será única por tanto caso se tente adicionar uma chave já existente uma exceção será gerada.
Uma forma para verificar se a chave existe é utilizando o método ContainsKey como no exemplo:
if (dict.ContainsKey("chave8"))
{
string value = "";
dict.TryGetValue("tif", out value);
}
else
dict.Add("chave8", "valor8");
if (dict.ContainsKey("chave8"))
{
string value = "";
dict.TryGetValue("tif", out value);
}
else
dict.Add("chave8", "valor8");
Para executar um foreach no Dictionary utilizaremos o KeyValuePair
foreach (KeyValuePair<string, string> kvp in dict )
{
Console.WriteLine("Key = {0}, Value = {1}",
kvp.Key, kvp.Value);
}
{
Console.WriteLine("Key = {0}, Value = {1}",
kvp.Key, kvp.Value);
}
Lembrando que este é um exemplo simples apenas para facilitar o entendimento de quem ainda não conhece o Dictionary, após isso tente utilizar não somente com strings, mas sim com classe
Dictionary<string, MinhaClasse> dict = new Dictionary<string, MinhaClasse>();
Dictionary<string, MinhaClasse> dict = new Dictionary<string, MinhaClasse>();
Ou até mesmo uma lista de classes
Dictionary<string, List<MinhaClasse>> dict = new Dictionary<string, List<MinhaClasse>>();
que é onde o Dictionary passa a ser ainda mais útil.
Dictionary<string, List<MinhaClasse>> dict = new Dictionary<string, List<MinhaClasse>>();
que é onde o Dictionary passa a ser ainda mais útil.
Também pode-se utilizar de outras formas para trabalhar jutamente com ele, como por exemplo LINQ
var valores = from item in dict
where item.Value == "valor8"
select item.Key;
var valores = from item in dict
where item.Value == "valor8"
select item.Key;
Vale a pena dar uma conferida na documentação oficial.
0 comentários:
Postar um comentário