C#
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
Для интерфейса
IEnumerable<T> добавлены дополнительные методы (фильтрация элементов, получения массива элементов, поиск элементов и т.д.).
Эти дополнительные методы называются
методы расширения.
Для тех, кто не знаком с
методами расширения в C# читайте подробнее ....
Методы расширения для интерфейса
IEnumerable<T> предоставляет класс
Enumerable ...
C#
Пример: у List вызываем метод расширения Any
// fill list
List<int> mylist1 = new List<int>();
mylist1.Add(6);
mylist1.Add(8);
mylist1.Add(10);
mylist1.Add(12);
mylist1.Add(15);
mylist1.Add(23);
// есть ли число меньше 3?
if (mylist1.Any(value => value < 3))
Console.Write("found");
else
Console.Write("not found");
// Any вернет false (нет числа меньше 3)
// на экране увидим надпись "not found"
Console.ReadLine();
Любой
LINQ запрос выдает результат в виде
IEnumerable<T> или
IQueryable<T>.
Для
IEnumerable<T> мы можем вызвать метод расширения (фильтрация элементов, поиска и т.д.)
C#
у IEnumerable вызываем метод расширения Any
int[] arr = { 1, 5, 7, 2, 8, 10, 34 };
IEnumerable<int> result = from t in arr
where t > 2
orderby t
select t;
// result содержит элементы: 8, 10, 34
// есть ли число больше 11?
if (result.Any(value => value>11))
Console.Write("found");
else
Console.Write("not found");
// Any вернет true (есть число больше 11)
// на экране увидим надпись "found"