Saltar al contenido

Obtener el primer elemento de un diccionario

Ya no busques más por todo internet ya que estás al espacio justo, poseemos la solución que deseas pero sin problemas.

Solución:

Tenga en cuenta que para llamar First aquí es en realidad para llamar a una extensión Linq de IEnumerable, que se implementa mediante Dictionary. Pero para un Diccionario, “primero” no tiene un significado definido. De acuerdo con esta respuesta, el último elemento agregado termina siendo el “Primero” (en otras palabras, se comporta como un Pila), pero eso es específico de la implementación, no es el garantizado comportamiento. En otras palabras, a asumir vas a obtener cualquier artículo definido llamando Primero sería pedir problemas, usarlo debería ser tratado como similar a obtener un aleatorio artículo del Diccionario, como lo señala Bobson a continuación. Sin embargo, a veces esto es útil, ya que solo necesita ningún elemento del Diccionario.


Solo usa el Linq First():

var first = like.First();
string key = first.Key;
Dictionary val = first.Value;

Tenga en cuenta que usando First en un diccionario te da un KeyValuePairen este caso KeyValuePair>.


Tenga en cuenta también que Ud. pudo obtener un significado específico del uso de First combinándolo con el Linq OrderBy:

var first = like.OrderBy(kvp => kvp.Key).First();

Para cualquiera que venga a esto y quiera una forma sin linq de obtener un elemento de un diccionario

var d = new Dictionary();
d.Add("a", "b");
var e = d.GetEnumerator();
e.MoveNext();
var anElement = e.Current;
// anElement/e.Current is a KeyValuePair
// where Key = "a", Value = "b"

No estoy seguro de si esto es específico de la implementación, pero si su Diccionario no tiene ningún elemento, Current contendrá un KeyValuePair donde tanto el key y el valor son null.

(Miré la lógica detrás de linq First método para llegar a esto, y lo probé a través de LinqPad 4)

Aunque puedes usar First(), Los diccionarios no tienen orden per se. Utilice OrderedDictionary en su lugar. Y luego puedes hacer FirstOrDefault. De esta manera tendrá sentido.

Aquí tienes las comentarios y calificaciones

Si te animas, tienes la opción de dejar un enunciado acerca de qué le añadirías a este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *