Использование IEnumerable<> как List<> при динамическомC#

Место общения программистов C#
Anonymous
Использование IEnumerable<> как List<> при динамическом

Сообщение Anonymous »

Я смотрю на очень интересный код. Я пытаюсь понять, почему это работает.

Код в контроллере следующий.

Код: Выделить всё

var paymentInfo = controllerService.GetPaymentSummary();
ViewBag.PaymentInfo = paymentInfo;
В классе обслуживания контроллера есть этот код.

Код: Выделить всё

public IEnumerable GetPaymentSummary()
{
// ...
return paymentInfo; // is of type List
}
А в представлении есть очень интересный код.

Код: Выделить всё

@if (ViewBag.PaymentInfo.Count > 0)
{
// do something..
}
Представление использует свойство Count, принадлежащее List. Как это возможно?

В контроллере, например, я не могу написать PaymentInfo.Count, потому что PaymentInfo имеет тип IEnumerable .

Я понимаю, что это как-то связано с тем, что ViewBag является динамическим, но может ли кто-нибудь уточнить, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/260 ... en-dynamic

Вернуться в «C#»