Вам нужно начать с изучения определения CustomList и экземпляра клиентов .Клиенты экземпляра не являются коллекцией и, следовательно, не могут быть перечислены, как говорится в описании ошибки.Но скорее это экземпляр CustomerList, у которого есть свойство под названием customer.
Свойство customer представляет собой набор строк и может быть перечислено, однако в вашем случае вы имеетеобъявил его как частное.
Итак, первое, что вам нужно сделать, это сделать его публичной собственностью.Обратите внимание, что я не сделал переменную общедоступной, а сделал ее публичной собственностью.Вы можете узнать больше о свойствах здесь
public List<String> customers {get;set;}
И затем, в вашем foreach вы можете сделать следующее:
foreach (string customer in customers.customers)
{
Console.WriteLine(customer);
}
Это, однако, изменения, которые могутбыть необходимым, чтобы ваш существующий код работал.Но, если вам нужно переписать весь код, у вас есть несколько вариантов.
a) Можно покончить с классом CustomerList и напрямую использовать List.
var customers = new List<string>();
customers.Add("Apple");
b) Использовать CustomerListкласс, но используйте открытое свойство Customers, чтобы напрямую добавить в список
public class CustomerList
{
public CustomerList()
{
customers = new List<string>();
}
public List<String> Customers;
}
Код клиента
CustomerList customers = new CustomerList();
customers.Customers.Add("Apple");
customers.Customers.Add("Microsoft");
c) Третий вариант - реализовать интерфейс IEnumerable, но, тем не менее, учитывая требованиявашего кода и тот факт, что вы все еще изучаете C #, я бы сказал, что это может быть излишним.Было бы лучше сначала получить четкое представление о коллекциях и классах / свойствах, прежде чем приступить к реализации IEnumerable