LINQ to Objects, filtrando por tipo de Objeto
febrero 03, 2009 :: Posted by - Emilio Torrens :: Category - LINQ
El otro dÃa estaba trabajando con unas clases que eran contenedoras de varios tipos de clases, en un array de Objetos, vi que estábamos accediendo al objeto por posición y luego haciéndole cast, suponiendo que ese tipo de objeto siempre estarÃa en esa posición, pero cuando se producÃan errores todos los objetos se movÃan hacia abajo al insertar un objeto Error.
¿Para que suelto este rollo? pues porque me puse a probar LINQ para buscar en colecciones por tipo de objeto y, desde luego, es la manera mas elegante, cada dÃa estoy mas enamorado de LINQ.
Aquà os dejo un código de ejemplo:
public static void Test() { List<object> Lista = new List<object>(); Lista.Add(1); Lista.Add(2); Lista.Add(3); Lista.Add(4); Lista.Add("a"); Lista.Add("b"); Lista.Add("c"); Lista.Add("d"); Lista.Add(DateTime.Today); Lista.Add(DateTime.Today.AddDays(1)); Lista.Add(DateTime.Today.AddDays(2)); Lista.Add(DateTime.Today.AddDays(3)); var IntList = from i in Lista where i.GetType() == typeof (int) select i; var StringList = from s in Lista where s.GetType() == typeof(string) select s; var DateTimeList = from d in Lista where d.GetType() == typeof(DateTime) select d; Console.WriteLine("Hay {0} Integers",IntList.Count()); Console.WriteLine("Hay {0} Strings", StringList.Count()); Console.WriteLine("Hay {0} DateTimes", DateTimeList.Count()); Console.ReadLine(); }
Tags: LINQ


