Pregunta

El lenguaje que uso es C#.

Digamos que tenemos un Ienumerable, que es el resultado de una consulta de Linq. T es un tipo anónimo. ¿Cuál es la mejor manera si queremos acceder a los elementos de este tipo?

Creo que hay dos formas.

1) Convierta el IEnumerable en la lista y luego acceda a los elementos.

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;
} 

La razón por la que estoy pensando en algo como lo anterior es que, excepto por acceder a los elementos de la Ienumerable, necesito sus índices. En otras palabras, si un elemento es el primero, el segundo, etc.

Gracias de antemano por cualquier ayuda !

¿Fue útil?

Solución

No necesita crear colección, usar una int variable que es 0 y aumentarlo en un foreach. Luego tienes el índice y el 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 ++;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top