如果我编译下面的代码错误返回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();
}
}
答案 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());
}