c# hashtable dictionary - Java Map equivalente en C #




2 Answers

Puedes indexar el diccionario, no necesitas 'obtener'.

Dictionary<string,string> example = new Dictionary<string,string>();
...
example.Add("hello","world");
...
Console.Writeline(example["hello"]);

Una forma eficiente de probar / obtener valores es TryGetValue (gracias a Earwicker):

if (otherExample.TryGetValue("key", out value))
{
    otherExample["key"] = value + 1;
}

Con este método puede obtener valores rápidos y sin excepciones (si están presentes).

Recursos:

Dictionary-Keys

Pruebe obtener valor

Estoy tratando de mantener una lista de elementos en una colección con una clave de mi elección. En Java, simplemente usaría Map de la siguiente manera:

class Test {
  Map<Integer,String> entities;

  public String getEntity(Integer code) {
    return this.entities.get(code);
  }
}

¿Hay una manera equivalente de hacer esto en C #? System.Collections.Generic.Hashset no usa hash y no puedo definir una clave de tipo personalizada System.Collections.Hashtable no es una clase genérica
System.Collections.Generic.Dictionary no tiene un método get(Key)




class Test
{
    Dictionary<int, string> entities;

    public string GetEntity(int code)
    {
        // java's get method returns null when the key has no mapping
        // so we'll do the same

        string val;
        if (entities.TryGetValue(code, out val))
            return val;
        else
            return null;
    }
}



Related