none
Almacenar resultado de una consulta Linq en un Array RRS feed

  • Pregunta

  • Buenas,

    Saben si es posible almacenar el resultado de una consulta Linq en un Array para despuer ser recorrido dicho array con un for? gracias !!


    Jose

    jueves, 22 de octubre de 2015 10:02

Todas las respuestas

  • Las consultas LINQ devuelven un objeto IEnumerable que puede ser recorrido en un bucle foreach.

    En cualquier caso, si sigues necesitando convertirlo a un Array, no tienes más que usar el método de extensión ToArray que también proporciona la librería LINQ.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 22 de octubre de 2015 10:20
  • Te refieres a algo asi?

              var consulta = from q in db.mitabla select q;

              string[] miArray= consulta.ToArray();

    Me da error :(


    Jose

    jueves, 22 de octubre de 2015 10:39
  • Pero ¿qué error te da?

    Entiendo que los elementos de db.mitabla no son strings.

    Mira este ejemplo:

    var custQuery =
      from cust in db.Customers
      where cust.City == "London"
      select cust;
    Customer[] qArray = custQuery.ToArray();


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 22 de octubre de 2015 10:54
  • hola

    >>para despuer ser recorrido dicho array con un for?

    no necesitas un array para recorrer una coleccion en un for, puede ser un list o coleccion

    es mas el mismo resultado como IEnumerable  puedes recorrerlo en un for o foreach

    si solo haces

    var result = dbcontext.Entidad.Where(x=> x.prop1 == valor);
    
    foreach(var item in result){
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 22 de octubre de 2015 12:42
  • El foreach me da conflictos (recuerdas?) debo hacerlo con un for. A ver si asi va bien, me está costando. Gracias de todos modos Leandro.


    Jose

    jueves, 22 de octubre de 2015 13:29
  • Hola

    Podrias hacerlo como dice Leandro con un for normal.

    var result = dbcontext.Entidad.Where(x=> x.prop1 == valor);
    
    for (int i=0;i<result.count;i++){
    //tu logica
    }

    Saludos
    jueves, 22 de octubre de 2015 13:52