Загрузка данных


public class Animal
{
    public string Name { get; init; }
    public string Description { get; private set; }
    public int Age { get; internal set; }

    private Animal[] children = new Animal[0];

    public Animal this[int index]
    {
        get
        {
            if (index < 0 || index >= children.Length)
                return null;

            return children[index];
        }
        set
        {
            if (index < 0)
                return;

            if (index >= children.Length)
            {
                Animal[] newChildren = new Animal[index + 1];

                for (int i = 0; i < children.Length; i++)
                {
                    newChildren[i] = children[i];
                }

                children = newChildren;
            }

            children[index] = value;
        }
    }

    public int CountAnimalsChild
    {
        get
        {
            return children.Length;
        }
    }

    public Animal(string name = "", string description = "", int age = 0)
    {
        Name = name;
        Description = description;
        Age = age;
    }
}

class Program
{
    static void Main()
    {
        Animal animal = new Animal("Oleg", "Kit", 3);

        animal[5] = new Animal("Kit", "Malenkiy kit", 1);

        Console.WriteLine(animal.Name);
        Console.WriteLine(animal[5].Name);
        Console.WriteLine(animal.CountAnimalsChild);
    }
}