Set em C#

14 respostas
evertonsilvagomesjav

Qual a sintaxe do uso do Set em C#? (Collections)

14 Respostas

E

É meio nojento, mas

Set abc = new HashSet();

em Java é mais ou menos

IDictionary<string, object> abc = new Dictionary<string, object>();

Porque não existem Sets, você é obrigado a usar Maps, mas com um valor qualquer (use null para economizar memória).

ViniGodoy

Existe o HashSet:

Mas ele não tem a interface separada.

evertonsilvagomesjav

Opaa mas eu so preciso da “nao duplicidade”, isso é a mesma coisa q no java né? O HashSet.

ViniGodoy

Sim, idêntico. Sinto falta do TreeSet. :cry:

evertonsilvagomesjav

Hum então nao tem uma coleção auto-ordenada :cry:

evertonsilvagomesjav

O método put(K,V) no C# é o Add? Como capturar chave e valor no C#? To pesquisando aqui mas ta foda :shock:

ViniGodoy

Você diz no caso do IDictionary? Use os [], como se fosse um array! :smiley:

IDictionary&lt;string, int&gt; abc = new Dictionary&lt;string, object&gt;(); 
abc["Vinicius"] = 10;
abc["Everton"] = 20;
abc["Entanglement"] = 40;

int idadeEverton = abc["Everton"];

O mesmo vale para fazer a leitura.

evertonsilvagomesjav

ViniGodoy:
Você diz no caso do IDictionary? Use os [], como se fosse um array! :smiley:

IDictionary&lt;string, int&gt; abc = new Dictionary&lt;string, object&gt;(); 
abc["Vinicius"] = 10;
abc["Everton"] = 20;
abc["Entanglement"] = 40;

int idadeEverton = abc["Everton"];

O mesmo vale para fazer a leitura.

Puts Vini simples kkk, pra pegar a chave igual vc me passou com o Map.Entry tem algo parecido? Ou algo como keySet() que retorna as chaves.

ViniGodoy

Tem sim, é só iterar diretamente no mapa com o foreach.
Não estou com a sintaxe aqui, mas assim que pegar eu te passo.

Outra opção é usar o LinQ. Aí vc poderia até deixar o resultado ordenado pelos votos.

evertonsilvagomesjav

ViniGodoy:
Tem sim, é só iterar diretamente no mapa com o foreach.
Não estou com a sintaxe aqui, mas assim que pegar eu te passo.

Outra opção é usar o LinQ. Aí vc poderia até deixar o resultado ordenado pelos votos.

Hum iterando no Map com foreach ele me passa chave e valor ou so a chave? A opção do LinQ o foda é q nao sei muita coisa de sql =/

ViniGodoy

Em C# fica assim:

foreach (KeyValuePair&lt;string, int&gt; candidatoEntry in candidatos) { Console.WriteLine("Candidato: " + candidatoEntry.Key); Console.WriteLine("Votos: " + candidatoEntry.Value); }

evertonsilvagomesjav

ViniGodoy:
Em C# fica assim:

foreach (KeyValuePair&lt;string, int&gt; candidatoEntry in candidatos) { Console.WriteLine("Candidato: " + candidatoEntry.Key); Console.WriteLine("Votos: " + candidatoEntry.Value); }

È isso ai mesmo que tava precisando :smiley:

Vlw VIni!!!

ViniGodoy

Se quiser ordenar pelos votos:

var votos = (
   from kvp in candidatos
   orderby kvp.Value
   select kvp);

foreach (KeyValuePair&lt;string, int&gt; kvp in votos)
{  
    Console.WriteLine("Candidato: " + candidatoEntry.Key);  
    Console.WriteLine("Votos: " + candidatoEntry.Value);  
}
evertonsilvagomesjav
ViniGodoy:
Se quiser ordenar pelos votos:
var votos = (
   from kvp in candidatos
   orderby kvp.Value
   select kvp);

foreach (KeyValuePair&lt;string, int&gt; kvp in votos)
{  
    Console.WriteLine("Candidato: " + candidatoEntry.Key);  
    Console.WriteLine("Votos: " + candidatoEntry.Value);  
}

Rs tenho que dar uma estudada nesse LinQ, recurso mto bacana.

Criado 11 de maio de 2010
Ultima resposta 19 de mai. de 2010
Respostas 14
Participantes 3