开发者

How can i use generic list with foreach?

开发者 https://www.devze.com 2023-01-03 17:53 出处:网络
if i compiled below codes error return foreach loop how can i solve it? Error:Error1foreach statement cannot operate on variables of type \'Sortlist.MyCalısan\' because \'Sortlist.MyCalısan\' does

if i compiled below codes error return foreach loop how can i solve it?

Error:Error 1 foreach statement cannot operate on variables of type 'Sortlist.MyCalısan' because 'Sortlist.MyCalısan' does not contain a public definition for 'GetEnumerator' C:\Users\yusuf.kar开发者_JAVA技巧atoprak\Desktop\ExcelToSql\TestExceltoSql\Sortlist\Program.cs 46 13 Sortlist


        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();
        }
    }


Only write foreach (Calısan item in myCalısan.list).


I recommend MyCalısan to define as Collection.

public class MyCalısan : Collection<Calısan>
{
}


You should loop on MyCalisan.list; MyCalisan is just your class, and is not enumerable itself.


a few issues need to be fixed before it will compile:

   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());
        }


You need to iterate over the collection you had defined - the list property:

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

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

However, if you want to iterate over myCalısan directly, make the MyCalısan class implement IEnumerable<Calısan>.

0

精彩评论

暂无评论...
验证码 换一张
取 消