我在C#中构建的Windows Form应用程序有问题。该错误表明“foreach语句无法对'CarBootSale.CarBootSaleList'类型的变量进行操作,因为'CarBootSale.CarBootSaleList'不包含'GetEnumerator'的公共(public)定义”。
我似乎不明白是什么原因造成的。
这是引发错误的代码:
List<CarBootSaleList> Sortcarboot = new List<CarBootSaleList>();
foreach (CarBootSale c in carBootSaleList)
{
if (c.Charity == "N/A")
{
Sortcarboot.Add(carBootSaleList);
textReportGenerator.GenerateAllReport(Sortcarboot, AppData.CHARITY);
}
}
这是CarBootSaleList类,它表示没有GetEnumerator定义:
public class CarBootSaleList
{
private List<CarBootSale> carbootsales;
public CarBootSaleList()
{
carbootsales = new List<CarBootSale>();
}
public bool AddCarBootSale(CarBootSale carbootsale)
{
bool success = true;
foreach (CarBootSale cbs in carbootsales)
{
if (cbs.ID == carbootsale.ID)
{
success = false;
}
}
if (success)
{
carbootsales.Add(carbootsale);
}
return success;
}
public void DeleteCarBootSale(CarBootSale carbootsale)
{
carbootsales.Remove(carbootsale);
}
public int GetListSize()
{
return carbootsales.Count();
}
public List<CarBootSale> ReturnList()
{
return carbootsales;
}
public string Display()
{
string msg = "";
foreach (CarBootSale cbs in carbootsales)
{
msg += String.Format("{0} {1}", cbs.ID, cbs.Location, cbs.Date);
msg += Environment.NewLine;
}
return msg;
}
最佳答案
您的CarBootSaleList
类不是列表。这是一个包含列表的类。
您有三种选择:
使您的CarBootSaleList
对象实现IEnumerable
或者
使您的CarBootSaleList继承自List<CarBootSale>
或者
如果您很懒,这几乎可以完成相同的操作而无需额外的编码
List<List<CarBootSale>>
关于c# - C#Foreach语句不包含GetEnumerator的公共(public)定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15159014/