Di recente ho iniziato a utilizzare c # passando da Java. Non riesco a trovare come ottenere un elemento dell'elenco per indice. In java per ottenere il primo elemento dell'elenco sarebbe:
list1.get(0);
Qual è l'equivalente in c #?
Di recente ho iniziato a utilizzare c # passando da Java. Non riesco a trovare come ottenere un elemento dell'elenco per indice. In java per ottenere il primo elemento dell'elenco sarebbe:
list1.get(0);
Qual è l'equivalente in c #?
Risposte:
list1[0];
Supponendo che il tipo di elenco abbia un indicizzatore definito.
È possibile utilizzare il metodo di estensione ElementAt nell'elenco.
Per esempio:
// 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]notazione standard ?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)o per salvaguardare un elemento inesistente:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # e C ++ hanno tutti sintassi per accedere alla proprietà Item senza usare il suo nome. Invece, la variabile contenente l'Elenco viene utilizzata come se fosse un array.
List[index]
Vedere ad esempio: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
Vecchia domanda, ma vedo che questa discussione è stata piuttosto recente, quindi andrò avanti e aggiungerò i miei due centesimi:
Praticamente esattamente quello che ha detto Mitch. Supponendo una corretta indicizzazione, puoi semplicemente andare avanti e utilizzare la notazione parentesi quadra come se stessi accedendo a un array. Oltre a utilizzare l'indice numerico, tuttavia, se i tuoi membri hanno nomi specifici, puoi spesso effettuare una ricerca / accesso simultanei digitando qualcosa del tipo:
var temp = list1["DesiredMember"];
Più sai, vero?
La Liststruttura di dati .NET è Arrayuna "shell mutabile".
Quindi puoi usare gli indici per accedere ai suoi elementi come:
var firstElement = myList[0];
var secondElement = myList[1];
A partire da C # 8.0 è possibile utilizzare Indexe le Rangeclassi per accedere agli elementi. Forniscono l'accesso dalla fine della sequenza o semplicemente accedono a una parte specifica della sequenza:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
È possibile combinare indici e intervalli insieme:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
Inoltre è possibile utilizzare il ElementAtmetodo LINQ , ma per il 99% dei casi questa non è davvero necessaria e solo una soluzione con prestazioni lente.