Prendiamo come esempio il seguente codice C#:
var lista = new string[] { //index (from start) //index (from the end) “Item1”, // 0 // ^5 “Item2”, // 1 // ^4 “Item3”, // 2 // ^3 “Item4”, // 3 // ^2 “Item5” // 4 // ^1 }; // 5 .Length // ^0 var retValue1 = lista[2]; // Item3 var retValue2 = lista[^2]; // Item4 var retValue3 = lista[1..3]; // Item2, Item3 var retValue4 = lista[..2]; // Item1, Item2
Analizziamo ognuna delle variabili retValue
:
retValue1
: il valore è ottenuto con il modo classico, ovvero per indice, e conterrà la stringa “Item3”;retValue2
: in questo caso la variabile contiene il secondo elemento, partendo dalla coda della lista;retValue3
: sono presenti un range di valori tra index 1 (incluso) e index 3 (escluso), quindi [“Item2”, “Item3”]. Inclusione/esclusione degli indici lo si definisce con i..
;retValue4
: come sopra, contiene un range di valori che vanno da index 0 a index 2 (escluso), quindi [“Item1”, “Item2”].
In conclusione:
..
→ tutti gli elementi in lista (non è specificato né inizio né fine);..2
→ tutti gli elementi fino a index 2 (escluso);3..
→ da index 3 (incluso) fino alla fine della lista.