При создании объекта добавить его в коллекцию. - C#
Формулировка задачи:
Всем добрый вечер. Скажите, можно ли при создании объекта добавить его в коллекцию или массив объектов? И производить добавление надо в конструкторе.
Решение задачи: «При создании объекта добавить его в коллекцию.»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace first
{
class People
{
private static int _valueofobj = 0; //Отвечает за кол-во созданных объектов
public People(int age, string name)
{
Age = age;
Name = name;
_valueofobj++;
}
~People()
{
_valueofobj--;
}
public int Age { get; set; }
public string Name { get; set; }
public static bool operator >(People p1, People p2)
{
return p1.Age > p2.Age;
}
public static bool operator <(People p1, People p2)
{
return p1.Age < p2.Age;
}
public static bool operator >=(People p1, People p2)
{
return p1.Age >= p2.Age;
}
public static bool operator <=(People p1, People p2)
{
return p1.Age <= p2.Age;
}
public override string ToString ()
{
return string.Format ("[People: Age={0}, Name={1}]", Age, Name);
}
}
class PeopleCollection : List<People>
{
public PeopleCollection():base()
{
}
public People[] GetOldests()
{
return this.Where((x) =>
x.Age == this.Max((y => y.Age))).Select(x => x).ToArray();
}
}
class Program
{
public static void Main()
{
PeopleCollection peoples = new PeopleCollection
{
new People(1, "1"),
new People(2, "2"),
new People(2, "3")
};
foreach(People item in peoples.GetOldests())
{
Console.WriteLine(item);
}
}
}
}