- Оператор C # Foreach не содержит публичного определения для GetEnumerator
- 4 ответа
- Оператор получения ошибки foreach не может работать с переменными типа », потому что » не содержит открытого определения для ‘GetEnumerator’
- 3 ответа
- Foreach не содержит открытого определения для «GetEnumerator»
- Оператор foreach не работает с переменными типа так как не содержит открытого определения для getenumerator
- Решение
- Оператор Foreach не может работать с переменными типа ‘?’ потому как ‘?’ не содержит общедоступного определения для ‘GetEnumerator’
Оператор C # Foreach не содержит публичного определения для GetEnumerator
У меня проблема с приложением Windows Form, которое я создаю на C #. Ошибка говорит о том, что «оператор foreach не может работать с переменными типа« CarBootSale.CarBootSaleList », потому что« CarBootSale.CarBootSaleList »не содержит общедоступного определения для« GetEnumerator »».
Кажется, я не понимаю, что вызывает это.
Это код, который выдает ошибку:
и это класс CarBootSaleList, где говорится, что нет определения GetEnumerator:
4 ответа
Ваш класс CarBootSaleList не является списком. Это класс, который содержит список.
У вас есть три варианта:
Сделайте так, чтобы ваш объект CarBootSaleList реализовал IEnumerable
заставьте ваш CarBootSaleList наследовать от List
если вы ленивы, это может сделать почти то же самое без дополнительного кодирования
Вы не показываете нам объявление carBootSaleList . Однако из сообщения об исключении я вижу, что оно имеет тип CarBootSaleList . Этот тип не реализует интерфейс IEnumerable и поэтому не может использоваться в foreach.
Ваш класс CarBootSaleList должен реализовывать IEnumerable :
В цикле foreach вместо carBootSaleList используйте carBootSaleList.data.
Возможно, вам больше не нужен ответ, но это может кому-то помочь.
Вы должны реализовать интерфейс IEnumerable (CarBootSaleList должен подразумевать его в вашем случае).
Но обычно проще создать подкласс System.Collections.ObjectModel.Collection и друзей
Ваш код также кажется немного странным, как будто вы вложили списки?
Источник
Оператор получения ошибки foreach не может работать с переменными типа », потому что » не содержит открытого определения для ‘GetEnumerator’
Я получаю сообщение об ошибке здесь, в моем представлении бритвы:
Оператор foreach не может работать с переменными типа «Project.Model.ResultsClass», поскольку «Project.Model.ResultsClass» не содержит общедоступного определения для «GetEnumerator»
Вот мой foreach и как я определяю Model
Вот метод контроллера:
А вот и мой класс:
Я не понимаю, что я делаю не так?
3 ответа
Вы передали result , который является типом ResultsClass , а не коллекцией ResultsClass , и затем пытаетесь выполнить итерацию по нему, как если бы это была коллекция, поэтому вы не можете ее использовать в вашем foreach цикле. Таким образом, чтобы можно было использовать << X4>> на нем, вы должны сделать его коллекцией. Например, ваш цикл foreach работает, если вы передали results вместо result :
Эта строка является виновником:
Эта строка приводит к проблемам в действиях вашего контроллера, если вы хотите вернуть список (коллекцию) в представление.
По сути, эта строка означает, что вы хотите показать 1 ResultsClass объект, а не набор ResultsClass объектов, поэтому вы не можете перебирать только 1 ResultsClass объект.
Но сейчас вы можете решить эту проблему, просто вызвав свойства объекта ResultsClass , который вы возвращаете в представление.
Просто передайте объект results в действие вашего контроллера:
Тогда по вашему мнению:
Позвольте мне знать, если это помогает.
Это потому, что ваша модель не является коллекцией. Это объект. Если вы хотите перебрать что-то, это должна быть коллекция, такая как массив или список.
Источник
Foreach не содержит открытого определения для «GetEnumerator»
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа «SearchMarket.TO.CurrentOrderSummaryReport», так как «SearchMarket.TO.CurrentOrderSummaryReport» не содержит открытого определения для «GetEnumerator»
что это значит и как решить проблему?
Добавлено через 3 минуты
вот в объявлении :
CurrentOrderSummaryReport listCurrentOrders(ISet betIds, ISet marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Цикл foreach и ошибка «тип не содержит открытого определения для GetEnumerator»
Имеется список, элементом которого является объект с двумя полями. для доступа к полям класса.
Оператор foreach не работает с переменными типа «Лаба_2.RList» так как «Лаба_2.RList» не содержит.
«student» не содержит определения для «Name» и не был найден метод расширения «Name»
Здравствуйте. Помогите пожалуйста найти ошибку («student» не содержит определения для «Name» и.
Работа с Excel: «object» не содержит определения для «get_Range»
скажите пожалуйста visual studio не получается выделить область в excel для выравнивания выдает.
maxspeed, я так понимаю, ваш класс CurrentOrderSummaryReport — это коллекция объектов CurrentOrderSummary. И вы хотите перебирать их через foreach? В таком случае реализуйте в вашем классе интерфейс IEnumerable . А поскольку внутренним хранилищем у вас выступает List , который уже реализует всю инфраструктуру, можете использовать его реализацию.
Добавлено через 8 минут
И да, для коллекции public List CurrentOrders < get; set; >у вас используется автосвойство. Но создания коллекции не предусмотрено, поэтому при попытке обращения к ней получите NullReferenceException, поскольку поддерживающее поле для автосвойства инициализированно как null. Советую инициализировать это свойство в конструкторе. Вот полный пример, атрибуты убрал для упрощения.
Источник
Оператор foreach не работает с переменными типа так как не содержит открытого определения для getenumerator
Оператор foreach не работает с переменными типа «Лаба_2.RList» так как «Лаба_2.RList» не содержит открытого определения для «GetEnumerator».
Я тупой. Что делать?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Foreach не содержит открытого определения для «GetEnumerator»
при обработке результата с помощью foreach Ошибка 5 Оператор foreach не может использоваться для.
Цикл foreach и ошибка «тип не содержит открытого определения для GetEnumerator»
Имеется список, элементом которого является объект с двумя полями. для доступа к полям класса.
Добрый вечер. Пытаюсь разобраться с ошибкой: foreach не работает с переменными типа IEnumerable.
Решение
В моей программе для сохранения «базы» ТРЕБУЕТСЯ проверка изображения в PictureBox’е (на.
Оператор new работает не так как пишут и рассказывают в интернете
Добрый день! Недавно начал изучать с++, но напоролся на что-то не понятное. Все пишут что.
Переписать алгоритм для определения диагоналей матрицы с использованием foreach
Задание: Есть квадратная матрица m*n заполнить элементы над и под основной и побочными диагоналями.
Реализация IEnumerable : GetEnumerator не имеет соответствующего возвращаемого типа
Здравствуйте. Помогите пожалуйста разобраться с реализацией IEnumerable . public class Group.
Источник
Оператор Foreach не может работать с переменными типа ‘?’ потому как ‘?’ не содержит общедоступного определения для ‘GetEnumerator’
Я сделал некоторые обновления для новой копии базы данных, которую я использую и сгенерировал файл edmx из базы данных, я исправил пару хранимых процедур, которые давали мне проблемы, однако в этом одном методе я продолжаю получать эту ошибку
Ошибка инструкции CS1579 foreach не может работать с переменными типа ‘?’ потому как ‘?’ не содержит общедоступного определения для ‘GetEnumerator’
и я думаю, что это связано с этой ошибкой
Ошибка CS1936 Не удалось найти реализацию шаблона запроса для типа источника ‘int’. «Выбрать» не найдено
Я искал решение для этого и не нашел ничего твердого.
Метод в моем DAL, который бросает ошибку,
Это класс контекста EF для хранимой процедуры
и моя хранимая процедура
Я проверил хранимую процедуру в SSMS и вернул все данные, которые мне нужны
Поэтому я не уверен, где проблема.
Я удалил свой файл EDMX пару раз и восстановил его из базы данных, но это не работает, я все равно получаю эти 2 ошибки. Вероятно, он явно очевиден для решения, но он не выскакивает на меня
usp_GetCustomerByID С# возвращает одно значение int , а не набор объектов, поэтому вы не можете использовать его в качестве источника запроса. from a in ExoEntities.usp_GetCustomerByID(id) недопустим.
Возвращаемый тип usp_GetCustomerByID должен быть IEnumerable если вы хотите его запросить. Вы могли бы мне использовать IEnumerable в качестве типа возвращаемого значения, но это неясно, является ли это ваш тип сущности. Тогда вам не придется перебирать и создавать новые объекты NewCustomer . Вы можете просто вызвать return usp_GetCustomerByID(id).ToList()
Кроме того, запрос from a in select a по существу возвращает итератор поверх , поэтому вы можете просто использовать:
Источник