Работа интерфейса IEnumerable и ошибка преобразования типов - C#

Узнай цену своей работы

Формулировка задачи:

у меня есть клас:
  class DAD2
 
    {
        public string name { get; set; }
        public int code { get; set; }
        public double size { get; set; }
        public double price { get; set; }
 
        public DAD2(){}
        public DAD2(string name, int code, double size, double price)
        {
            this.name=name;
            this.code=code;
            this.size=size;
            this.price=price;
        }
 
}
заполняю его так:
DAD2[] p = { new SON2("Арка", 1100, 144.5, 150),new SON2("Стіл", 1100, 77.7, 450),
                       new SON2("Підлога", 1102, 10, 550),new SON2("Вікно", 1100, 714.9, 350),
                       new SON2("Атеро", 1100, 74.9, 50)};
хочу его виводить вот так:
  foreach(DAD2 p3 in p)
                dataGrid3.ItemsSource = p3;
и видает ошибку:

Ошибка 1 Не удается неявно преобразовать тип "lab_3.SON2" в "System.Collections.IEnumerable". Существует явное преобразование (возможно, пропущено приведение типов) D:\РОМАН\5-курс\edisk_files\Lab_Kovalchuk\Готові лаби\lab_№3\lab_3\lab_3\Window2.xaml.cs 38 41 lab_3

как мне исправить? я знаю надо переопределить методpublic IEnumerator GetEnumerator() но мне не работает((( помогите плиз...

Решение задачи: «Работа интерфейса IEnumerable и ошибка преобразования типов»

textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace IEnumirableT
{
    internal class MyClass : IEnumerable<int>
    {
        private int[] _x;
 
 
        public MyClass(int length)
        {
            _x = new int[length];
        }
 
 
        public IEnumerator<int> GetEnumerator()
        {
            for (int i = 0; i < _x.Length; i++)
                yield return _x[i];
        }
 
 
        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
 
 
    internal class Program
    {
        private static void Main()
        {
            MyClass m = new MyClass(10);
            foreach (int i in m)
                Console.WriteLine(i);
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы