[c#] Java Map equivalente en C #


0 Answers

Dictionary <,> es el equivalente. Si bien no tiene un método Get (...), sí tiene una propiedad indexada llamada Item a la que se puede acceder en C # directamente usando la notación de índice:

class Test {
  Dictionary<int,String> entities;

  public String getEntity(int code) {
    return this.entities[code];
  }
}

Si desea utilizar un tipo de clave personalizada, debe considerar la implementación de IEquatable <> y anular Igual (objeto) y GetHashCode () a menos que la igualdad predeterminada (referencia o estructura) sea suficiente para determinar la igualdad de claves. También debe hacer que su tipo de clave sea inmutable para evitar que sucedan cosas extrañas si una clave está mutada después de haber sido insertada en un diccionario (p. Ej., Porque la mutación hizo que su código hash cambiara).

Question

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)




Related