Tabla de contenidos:
All
El operador All comprueba si todos los elementos de una secuencia cumplen una condición.
Código necesario para los ejemplos:
Una lista de nombres:
List<string> nombres = new List<string> {"Jesus", "Maria", "Julia", "Carla"};
All:
public static bool All<TSource>( this IEnumerable<TSource> source, Func<TSource, bool> predicate )
Como parámetro recibe un delegado que será la condición que ha de cumplir (o no) los elementos de una secuencia. Devuelve un bool.
Por ejemplo, ¿Todos los nombres de la lista tienen 5 caracteres?:
bool cinco = nombres.All(n => n.Length == 5);
¿Verdad que si? Claro que si:
True
¿Pero terminan todos los nombres por a?
bool a = nombres.All(n => n.EndsWith("a"));
Casi, así que:
False
Volver a la tabla de contenidos
Any
El operador Any comprueba si una secuencia contiene elementos ya sean de cualquier tipo o con una condición.
Código necesario para los ejemplos:
Una lista de nombres:
List<string> nombres = new List<string> {"Jesus", "Maria", "Julia", "Carla"};
Una lista vacía:
List<int> vacia = new List<int>();
Any estándar:
public static bool Any<TSource>( this IEnumerable<TSource> source )
El operador se usa en una secuencia para determinar si contiene elementos o no. Devuelve un bool.
Por ejemplo, con la lista de nombres:
bool any = nombres.Any();
Si que hay nombres:
True
Pero hay algo en la lista de números:
bool any = vacia.Any();
No, no hay nada:
False
Any + condición:
public static bool Any<TSource>( this IEnumerable<TSource> source, Func<TSource, bool> predicate )
En esta sobrecarga comprobaremos si existe algún elemento que cumpla la condición que pasaremos como parámetro al operador. Solo hace falta que uno cumpla la condición.
¿Algún nombre que termine en s?:
bool any = nombres.Any(n => n.EndsWith("s"));
Si que hay si:
True
¿Alguno de 6 caracteres?:
bool any = nombres.Any(n => n.Length == 6);
No, todos de 5:
False
Volver a la tabla de contenidos
Contains
El operador Contains comprueba si una secuencia contiene un elemento especificado.
Código necesario para los ejemplos:
Una lista de nombres:
List<string> nombres = new List<string> {"Jesus", "Maria", "Julia", "Carla"};
Un comparador de iniciales:
public class ComparadorInicial : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return x[0] == y[0];
}
public int GetHashCode(string obj)
{
return obj[0].GetHashCode();
}
}
Contains estándar:
public static bool Contains<TSource>( this IEnumerable<TSource> source, TSource value )
Le pasamos como parámetro el valor que queremos ver si existe en la secuencia. Devuelve un bool.
¿Habrá alguien con el nombre Julia en nuestra lista de nombres?:
bool julia = nombres.Contains("Julia");
Sí, sin duda:
True
¿Y algún Ílvaro?:
bool alvaro = nombres.Contains("Alvaro");
No, esta vez no:
False
Contains + comparador personalizado:
public static bool Contains<TSource>( this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer )
Ahora tenemos la posibilidad de usar nuestro propio comparador personalizado.
¿Algún nombre que empiece por C?:
bool c = nombres.Contains("C", new ComparadorInicial());
Sí, está Carla:
True
¿Alguno que empece por H?:
bool h = nombres.Contains("H", new ComparadorInicial());
No.
False
Volver a la tabla de contenidos
Tags: LINQ

