Сначала включите Мультивселенную repository.to, делают, которые открывают Software Sources
и нажимают spftware restricted by copyright(multiverse repository)
(можно также включить все, поскольку я сделал)
, Затем просто открывают терминал и тип sudo apt-get install ubuntu-restricted-extras
Также как в случае, который Вы, кажется, не имеете Python
. Установка, которые путем ввода sudo apt-get install python
, если это не работает затем, загружают этот пакет: Python для систем на 32 бита
IEnumerable
Существует много разных способов, которыми набор вещей может быть сохранен в списке, в массиве, в базу данных и т. д. Эти механизмы хранения объединяет то, что набор вещей может быть пронумерован , то есть к каждому из них можно получить доступ один за другим, используя языковая конструкция, например foreach
.
Интерфейс IEnumerable
представляет тот общий интерфейс, который все держатели наборов вещей должны разрешить перечисление. Следовательно, IEnumberable < Person
представляет интерфейс, который позволяет перечислять Набор объектов Person
без указания фактического способа хранения этих объектов.
IQueryable
Это расширение to IEnumerable
, но представляет собой нечто специфическое для LINQ. В LINQ вы можете указать запрос , который может фильтровать и преобразовывать набор (или наборы) элементов. В отличие от чисто IEnumerable
интерфейса это было бы известно как LINQ to Objects, в котором каждый этап запроса в конечном итоге представляет собой простой вызов метода расширения.
Однако в отношении объекта, реализующего IQueryable
вещи могут быть более сложными. Объект, реализующий IQueryable
может быть связан с другим поставщиком LINQ , который может реализовывать выполнение запросов LINQ другим способом. Например, IQueryable
может быть реализован с помощью типа, связанного с поставщиком LINQ-To-SQL. В этом случае запрос LINQ преобразуется в запрос T-SQL и выполняется в базе данных для получения набора элементов (результат не обязательно может быть набором объектов Person
).
IEnumerable
ничего не значит в контексте ООП.
IEnumerable
и IEnumerable
- это интерфейсы .NET, которые просто указывают что последовательность может быть пронумерована. Классы, реализующие IEnumerable
или IEnumerable
, предоставляют свойства / методы, чтобы сделать это перечисление возможным.
Например:
IEnumerable<Person> people = GetPeopleFromSomewhere();
// iterate through the sequence
foreach (Person p in people)
{
Console.WriteLine(p.Name);
}
// use LINQ to query the sequence
var peopleOver30 = people.Where(p => p.Age > 30);
IEnumerable
- это тип платформы .NET. Он просто представляет собой перечисляемую последовательность элементов без каких-либо методов для управления этой последовательностью. Многие типы реализуют этот интерфейс, например ICollection
, IList
и BindingList
, и он обычно используется вместо конкретный тип поля или переменной, если последовательность должна рассматриваться как доступная только для чтения.
IQueryable расширяет IEnumerable и предназначен для реализации поставщиками LINQ. Вы можете выполнять запросы к любому провайдеру - т.е. абстрагироваться от поставщиков различий через этот интерфейс. Он расширяет IEnumerable, чтобы можно было повторять результаты запроса. например, перебрать все объекты Person с помощью LastName.equals ("Smith")
IEnumerable
означает, что переменная относится к объекту, который позволит вам выполнять итерацию / перечисление / цикл для коллекции объектов Person
foreach(Person person in people)
Console.WriteLine(person.ToString());
Это немного сложно объяснить (Джон Скит отлично справился с этим в своей книге). Тип, реализующий IEnumerable, в основном заявляет, что я могу предоставить вам объект-итератор (через метод интерфейса GetEnumerator), предоставляющий интерфейс IEnumerator, который можно использовать для доступа к элементу Current в коллекции и MoveNext для перехода к следующему элементу в списке. конструкция foreach внутренне вызывает вышеуказанные операции для достижения своей цели.
Тип, реализующий IEnumerable, в основном заявляет, что я могу предоставить вам объект-итератор (через метод интерфейса GetEnumerator), предоставляющий интерфейс IEnumerator, который можно использовать для доступа к элементу Current в коллекции и MoveNext для перехода к следующему элементу в списке. конструкция foreach внутренне вызывает вышеуказанные операции для достижения своей цели.
Тип, реализующий IEnumerable, в основном заявляет, что я могу предоставить вам объект-итератор (через метод интерфейса GetEnumerator), предоставляющий интерфейс IEnumerator, который можно использовать для доступа к элементу Current в коллекции и MoveNext для перехода к следующему элементу в списке. конструкция foreach внутренне вызывает вышеуказанные операции для достижения своей цели.
См. пример в MSDN , Реализуйте итератор самостоятельно, и он будет более понятным.