Pergunta

O idioma que eu uso é C#.

Digamos que tenhamos um ienumerable, que é o resultado de uma consulta LINQ. T é um tipo anônimo. Qual é a melhor maneira de acessar os elementos desse tipo.

Eu acho que existem duas maneiras.

1) Converta o iEnumerable para listar e depois acesse os 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;
} 

A razão pela qual estou pensando em algo como o exposto é que, exceto ao acessar os elementos do Ienumerable, preciso de seus índices. Em outras palavras, se um elemento é o primeiro, o segundo etc.

Agradecemos antecipadamente por qualquer ajuda !

Foi útil?

Solução

Você não precisa criar uma coleção, use um int variável que é 0 e aumenta em um foreach. Então você tem o índice e o 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top