Вывод на экран объекта arraylist C#
Как вывести на экран объект класса arrayList? Пробовал foreach, но он не работает с объектами.
static void Main(string[] args)
{
Zoo newZoo = new Zoo("NSK");
Cell oneCell = new Cell(5, 60, 10, 1);
Cell twoCell = new Cell(10, 80, 20, 2);
Animal oneAnimal = new Animal("Тигр",true);
Animal twoAnimal = new Animal("Лев", true);
Animal threeAnimal = new Animal("Пантера", true);
newZoo.addCell(oneCell);
newZoo.addCell(twoCell);
oneCell.addAimal(oneAnimal);
oneCell.addAimal(twoAnimal);
twoCell.addAimal(threeAnimal);
for (int i = 0; i < oneCell.getAnimal().Count;i++)
{
}
}
Ответы (2 шт):
Автор решения: Saintka
→ Ссылка
foreach (Animal o in oneCell.getAnimal())
{
Console.WriteLine(o.getName());
}
Автор решения: Peter Lavreniuk
→ Ссылка
Вариант решения номер 1. Переопределение ToString() базового класса System.Object
public sealed class Animal
{
public string Name { get; }
public bool IsAlive { get; }
public Animal(string name, bool isAlive)
{
Name = name;
IsAlive = isAlive;
}
public override string ToString()
{
return $"{Name} isAlive : {IsAlive}";
}
}
применение :
var animalList = new List<Animal>();
foreach (var animal in animalList)
{
//можно вызывать явно ToString() или пропустить явный вызов, пример будет показан ниже
Console.WriteLine(animal.ToString());
}
еще можно так :
Console.WriteLine("{0}", string.Join(", ", animalList));
или так :
animalList.ForEach(x => Console.WriteLine(x));
Вариант решения номер 2. Перебор массива и интерполяция строки, обращение к свойствам объекта.
var animalList = new List<Animal>();
foreach (var animal in animalList)
{
Console.WriteLine($"{animal.Name} isAlive : {animal.IsAlive}");
}
еще можно так:
animalList.ForEach(x => Console.WriteLine($"{x.Name} isAlive : {x.IsAlive}"));
Полезные ссылки : MSDN System.Object MSDN Свойства MSDN String interpolation