Set em C#

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

É 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).

Existe o HashSet:

Mas ele não tem a interface separada.

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

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

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

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

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.

[quote=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.

[/quote]

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.

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.

[quote=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.[/quote]

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 =/

Em C# fica assim:

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

[quote=ViniGodoy]Em C# fica assim:

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

È isso ai mesmo que tava precisando :smiley:

Vlw VIni!!!

Se quiser ordenar pelos votos:

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

foreach (KeyValuePair<string, int> kvp in votos)
{
Console.WriteLine("Candidato: " + candidatoEntry.Key);
Console.WriteLine("Votos: " + candidatoEntry.Value);
} [/code]

[quote=ViniGodoy]Se quiser ordenar pelos votos:

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

foreach (KeyValuePair<string, int> kvp in votos)
{
Console.WriteLine("Candidato: " + candidatoEntry.Key);
Console.WriteLine("Votos: " + candidatoEntry.Value);
} [/code]
[/quote]

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