Eseguire una query LINQ su un array restituendo il valore e l'indice

Scritto da  Massimo Bonanni il lunedì 24 ottobre 2011  •  Linguaggio: VB   • Livello: 100


Supponiamo di avere un array e di voler eseguire una query LINQ restituendo, contemporaneamente, il valore che verifica una determinata condizione e l'indice corrispondente a tale valore.
Ad esempio, sia Integers l'array di interi definito nel seguente modo:

VB.NET

 
Dim integers = {1, 2, 5, 4, 8, 9, 10, 13, 45, 67, 89, 32, 74}
 


e supponiamo di voler recuperare i numeri pari con il relativo indice:

VB.NET

Dim evens = integers.Select(Function(v, i) New With {.Value = v, .Index = i}) _
                .Where(Function(a) a.Value Mod 2 = 0)


L'extension method Select recupera una collezione di anonymous type formati dal valore contenuto nell'array (proprietà Value) e dal suo indice (proprietà Index) su cui possiamo eseguire nuovamente delle operazioni.


Tags: Linq

 
x