I'm having a problem with a Windows Form application I'm building in C#. The error is stating "foreach statement cannot operate on variables of type 'CarBootSale.CarBootSaleList' because 'CarBootSale.CarBootSaleList' does not contain a public definition for 'GetEnumerator'".
I can't seem to understand what is causing this.
This is the code that is throwing up the error:
List<CarBootSaleList> Sortcarboot = new List<CarBootSaleList>(); foreach (CarBootSale c in carBootSaleList) { if (c.Charity == "N/A") { Sortcarboot.Add(carBootSaleList); textReportGenerator.GenerateAllReport(Sortcarboot, AppData.CHARITY); } }
and this is the CarBootSaleList class where it's saying there isn't a GetEnumerator definition:
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; }
Your CarBootSaleList
class is not a list. It is a class that contain a list.
You have three options:
Make your CarBootSaleList
object implement IEnumerable
or
make your CarBootSaleList inherit from List<CarBootSale>
or
if you are lazy this could almost do the same thing without extra coding
List<List<CarBootSale>>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With