Domanda

La lingua che uso è C#.

Supponiamo che abbiamo un ignibo, che è il risultato di una query LINQ. T è un tipo anonimo. Qual è il modo migliore se vogliamo accedere agli elementi di questo tipo.

Penso che ci siano due modi.

1) Converti l'Ienumerable in elenco e quindi accedi agli elementi.

List<T> list = result.ToList();
for(int rowIndex=0; rowIndex<list.Count; rowIndex++)
{
    double x = list[rowIndex].val;
}

2)

for(int rowIndex=0; rowIndex<result.Count(); rowIndex++)
{
    double x = result.ElementAt(rowIndex).val;
} 

Il motivo per cui sto pensando a qualcosa di cui sopra è quello se non dall'accesso agli elementi dell'Ienumerable, ho bisogno dei loro indici. In altre parole, se un elemento è il primo, il secondo ecc.

Grazie in anticipo per qualsiasi aiuto !

È stato utile?

Soluzione

Non è necessario creare una raccolta, utilizzare un int variabile che è 0 e aumentalo in a foreach. Quindi hai l'indice e l'elemento.

int index = 0;
foreach(var x in result)
{
    // x is the element and index the current index
    Console.WriteLine("Val:{0} Index:{1}", x.val, index);
    index ++;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top