Member 11683406 Ответов: 3

Что такое ienumerable в коде csharp


Привет Ребята ,

Я нашел код csharp в книге, которая не в состоянии понять, не могли бы вы сказать, что это такое IEnumerable . почему его добавили сюда

@foreach (Album a in (ViewBag.Albums as IEnumerable)) {
@a.Title
 }



Заранее Спасибо Ребята

Что я уже пробовал:

Нужно знать, что такое IEnumerable . почему его используют в используемом в этом коде

Karthik_Mahalingam

он ссылается на приведение объекта viewbag к типу ienumerable.

это тоже сработает.
@foreach (альбом a в ViewBag.Альбомы ) {
@а.Название
}

3 Ответов

Рейтинг:
2

F-ES Sitecore

Вероятно, он там есть (это предположение), потому что код представления не знает, какой тип ViewBag.Альбомы находятся во время компиляции (потому что ViewBag-это динамический объект), поэтому представление не будет компилироваться, если вы попытаетесь зациклиться на чем-то, что не может быть зациклено. Поставив "as IEnumerable", он собирается бросить ViewBag.Альбомы к IEnumerable, который позволяет объекту быть зацикленным. Это позволяет представлению компилироваться, однако если контроллер помещает что-то в ViewBag.Альбомы, которые не могут быть переведены в IEnumerable, вы получите ошибку времени выполнения.

Лучшим решением этих проблем является использование правильной модели, которая является строго типизированной, чтобы представление знало, какой тип модели.Альбомы находятся во время компиляции.


Рейтинг:
1

AFell2

IEnumerable - это общая коллекция перечисляемых значений (т. е. список объектов). Код создает динамический объект ViewBag.Альбомы как универсальная коллекция, а затем прохождение каждого перечисления с помощью команды foreach.


Рейтинг:
0

Kornfeld Eliyahu Peter

RTFM[^]