¿Cuál es la diferencia de IEnumerable e IQueryable utilizando LINQ en C# .Net?

En este video te mostrare cual es la diferencia de la interface IEnumerable y la interface IQueryable al momento de utilizar LINQ.

LINQ en C# .Net intermedio en 10 minutos, take, skip, select, union, count

En este video veremos LINQ a nivel intermedio, haremos ejercicios prácticos con los cuales te explicare como puedes utilizar las funciones take, skip, select, union y count en tus consultas de LINQ.

Código


  class Program
    {
        static void Main(string[] args)
        {
            List<Persona> lst = new List<Persona>() {
                new Persona() { Edad = 40, Nombre = "Pancho" },
                new Persona() { Edad = 30, Nombre = "Juan" },
                new Persona() { Edad = 11, Nombre = "Mario" },
                new Persona() { Edad = 18, Nombre = "Juana" },
                new Persona() { Edad = 6, Nombre = "Memo" },
            };

            List<Persona> lstSoloTexto = new List<Persona>() {
                 new Persona() { Edad = 30, Nombre = "Héctor" },
                 new Persona() { Edad = 38, Nombre = "Fernando" },
                 new Persona() { Edad = 12, Nombre = "Miguel" }

            };

            List<string> lstOrdenadosSoloNombres = (
                                                    from a in 
                                                        (from d in lst
                                                       select d )
                                                       .Union(
                                                        from d in lstSoloTexto
                                                        select d
                                                        )
                                                    orderby a.Nombre
                                                    select a.EdadYNombre
                                                    )
                                                   .ToList();

            int numerodepersonas = lstOrdenadosSoloNombres.Count;

            foreach (var Nombre in lstOrdenadosSoloNombres)
            {
                Console.WriteLine(Nombre);
            }

        }

        public class Persona
        {
            public int Edad { get; set; }
            public string Nombre { get; set; }

            public string EdadYNombre
            {
                get {
                    return Edad + " - " + Nombre;
                }
            }

        }
    }

¿Cómo utilizar sentencias if dentro de una consulta LINQ? C# VB .Net

Para poder hacer uso de sentencias if dentro de nuestras consultas por LINQ, haremos uso de Lambda.

¿Cómo utilizar un try y catch dentro de una consulta LINQ?

A continuación con un ejemplo te muestro como es posible hacerlo:


EntityDB db= new EntityDB();
var lst = from d in db.tabla.ToList() //es importante hacerlo lista
                  select new TablaViewModel
                  {
                      id = d.id,
                      //campo es string por lo cual
                      //nuestra función delegada regresara igual string
                      campo = (new Func<string>(() => {
                                                            try {
                                                                 //utilizamos if
                                                                    if(d.alguncampo==1){
                                                                         return "Activo";
                                                                    }else{
                                                                         return "Inactivo";
                                                                    }

                                                                 }
                                                            catch {
                                                                 //si ocurre un error
                                                                   return "Error";
                                                            }
                                                        }
                                                  )
                                 )()
                  };

De esta manera podemos manipular la información para lograr el resultado deseado.