Как я могу использовать общий список с foreach? - PullRequest
2 голосов
/ 18 июня 2010

если я скомпилировал приведенные ниже коды, ошибка возвращает цикл foreach, как я могу ее решить?

Ошибка: оператор foreach ошибки 1 не может работать с переменными типа 'Sortlist.MyCalısan', поскольку 'Sortlist.MyCalısan'не содержит общедоступного определения для 'GetEnumerator' C: \ Users \ yusuf.karatoprak \ Desktop \ ExcelToSql \ TestExceltoSql \ Sortlist \ Program.cs 46 13 Сортировка


        static void EskiMetodlaListele()
        {
            MyCalısan myCalısan = new MyCalısan();
            Calısan calisan = new Calısan();
            calisan.Ad = "ali";
            calisan.SoyAd = "abdullah";
            calisan.ID = 1;

            myCalısan.list.Add(calisan);

            foreach (Calısan item in myCalısan)
            {
                Console.WriteLine(item.Ad.ToString());
            }
        }


    }

   public class Calısan
    {
        public int ID { get; set; }
        public string Ad { get; set; }
        public string SoyAd { get; set; }

    }

   public class MyCalısan
    {
        public List<Calısan> list { get; set; }
        public MyCalısan()
        {
            list = new List();
        }
    }

Ответы [ 5 ]

6 голосов
/ 18 июня 2010

Только писать foreach (Calısan item in myCalısan.list).

1 голос
/ 18 июня 2010

Я рекомендую MyCalısan определить как коллекцию.

public class MyCalısan : Collection<Calısan>
{
}
0 голосов
/ 18 июня 2010

перед компиляцией необходимо исправить несколько проблем:

   public class MyCalısan{
public List<Calısan> list { get; set; }
public MyCalısan()
{
    list = new List<Calısan>();
}}

  foreach (Calısan item in myCalısan.list)
        {
            Console.WriteLine(item.Ad.ToString());
        }
0 голосов
/ 18 июня 2010

Вы должны зациклить на MyCalisan.list; MyCalisan - это просто ваш класс, и сам по себе не перечисляем.

0 голосов
/ 18 июня 2010

Вам нужно перебрать определенную вами коллекцию - свойство list:

myCalısan.list.Add(calısan);

foreach (Calısan item in myCalısan.list)
{
    Console.WriteLine(item.Ad.ToString());
}

Однако, если вы хотите перебрать myCalısan напрямую, сделайтеMyCalısan класс реализации IEnumerable<Calısan>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...