Sector 7G

Sector7G Live Search

About Me

About Me

Windows Live Messenger Presence Gadget

My Photo Albums

My Photo Web Albums

Logos

  • Sector7G
  • ilitia Technologies


Kartones.Net MVF Winner

Sintaxis LINQ: Where

Al igual que sucede en SQL, la clausula where se utiliza para filtrar el resultado de una lista de objetos.

La signatura de este operador es la siguiente:

   1:  public static IEnumerable<T> Where<T>(this IEnumerable<T> items, 
   2:  Func<T, bool> predicate);
   3:  public static IEnumerable<T> Where<T>(this IEnumerable<T> items, 
   4:  Func<T,int,  bool> predicate);

En la segunda signatura se puede observar que tiene un parámetro más. Este parámetro de tipo int nos permitirá indicar porque elemento, porque index, de la colección queremos empezar a filtrar. Esto puede resultar muy útil a la hora de paginar una colección con un número elevado de elementos. La sintaxis sería la siguiente:

   1:  void list = _developers.Where((d,index) => 
   2:      d.Language == "C#" && index >= 1);

Ejemplos

Para la realización de los ejemplos se ha utilizado el siguiente código:

   1:  public class Developer
   2:  {
   3:      public string Name { get; set; }
   4:      public string Language { get; set; }
   5:      public int Age { get; set; }
   6:  }
   7:   
   8:  public List<Developer> developers = new List<Developer> { 
   9:      new Developer{ Name="Jorge", Language="C#"},
  10:      new Developer{ Name="Pedro", Language="C#"},
  11:      new Developer{ Name="Raul", Language="VB.NET"},
  12:  };

Ejemplos 1

   1:  var list = from d in developers
   2:             where d.Language == "C#"
   3:             select new { d.Name, d.Language };

Resultado:

Jorge C#
Pedro C#

Ejemplos 2

   1:  var list = from d in developers
   2:             where d.Language == "C#" && d.Name == "Pedro"
   3:             select new { d.Name, d.Language };

Resultado:

Pedro C#

Ejemplos 3

   1:  var list = developers.Where((d, index) 
   2:      => (index >= start && index< end));

Resultado:

Pedro C#

Comments

Sector 7G said:

En LINQ las consultas pueden ser ejecutadas de dos formas diferentes. Mediante ejecuci&#243;n inmediata

# April 19, 2008 2:09 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Enter the numbers above: