Code, Learn

C# Tip: accedere velocemente agli elementi di una lista

30 Luglio 2020 - 2 minuti di lettura

Per chi come me sviluppa in C# da diversi anni si ricorda che, per accedere agli elementi di una lista, il linguaggio metteva a disposizione solamente un indice a base 0.

L’evoluzione del linguaggio ha portato novità come LINQ [1] mentre ora, con la versione 8 [2], ci viene fornita una nuova sintassi in aggiunta a quelle “storiche”.

Per la rubrica i3 Tips vi illustrerò quanto sia semplice accedere a qualunque elemento, o sottoinsieme di elementi, di una lista.

Buona lettura.

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.
Articolo scritto da