我如何使用foreach的通用列表?

时间:2010-06-18 05:58:41

标签: c# .net visual-studio visual-studio-2008

如果我编译下面的代码错误返回foreach循环我该怎么解决呢?

错误:错误1 foreach语句无法对“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 个答案:

答案 0 :(得分:6)

只能写foreach (Calısan item in myCalısan.list)

答案 1 :(得分:1)

我建议将MyCalısan定义为Collection。

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

答案 2 :(得分:0)

您需要遍历已定义的集合 - 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>

答案 3 :(得分:0)

你应该在MyCalisan.list上循环; MyCalisan只是你的班级,并不是自己可以枚举的。

答案 4 :(得分:0)

在编译之前需要修复一些问题:

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