Recientemente comencé a usar C # moviéndome desde Java. Parece que no puedo encontrar cómo obtener un elemento de lista por índice. En Java para obtener el primer elemento de la lista sería:
list1.get(0);
¿Cuál es el equivalente en c #?
Recientemente comencé a usar C # moviéndome desde Java. Parece que no puedo encontrar cómo obtener un elemento de lista por índice. En Java para obtener el primer elemento de la lista sería:
list1.get(0);
¿Cuál es el equivalente en c #?
Respuestas:
list1[0];
Asumiendo que el tipo de la lista tiene un indexador definido.
Puede usar el método de extensión ElementAt en la lista.
Por ejemplo:
// Get the first item from the list
using System.Linq;
var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);
// Do something with firstItem
using System.Linq;
.
myList[0]
notación estándar ?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
o para proteger contra un elemento inexistente:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # y C ++ tienen sintaxis para acceder a la propiedad Item sin usar su nombre. En cambio, la variable que contiene la Lista se usa como si fuera una matriz.
List[index]
Ver por ejemplo: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
Antigua pregunta, pero veo que este hilo estuvo bastante activo recientemente, así que seguiré y arrojaré mis dos centavos:
Más o menos exactamente lo que dijo Mitch. Suponiendo una indexación adecuada, puede seguir adelante y usar la notación de corchetes como si estuviera accediendo a una matriz. Sin embargo, además de usar el índice numérico, si sus miembros tienen nombres específicos, a menudo puede realizar una búsqueda / acceso simultáneo escribiendo algo como:
var temp = list1["DesiredMember"];
Cuanto más sabes, ¿verdad?
La List
estructura de datos .NET está Array
en un "shell mutable".
Entonces puede usar índices para acceder a sus elementos como:
var firstElement = myList[0];
var secondElement = myList[1];
Comenzando con C # 8.0 , puede usar Index
y Range
clases para acceder a elementos. Proporcionan acceso desde el final de la secuencia o simplemente acceden a una parte específica de la secuencia:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
Puede combinar índices y rangos juntos:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
También puede usar el ElementAt
método LINQ , pero en el 99% de los casos esto realmente no es necesario y solo es una solución de rendimiento lento.