using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
List<BaseCats> cats = new List<BaseCats>
{
new BaseCats("Ману", 5),
new BaseCats("Марго", 10),
new BaseCats("Васян", 7)
};
cats.Sort();
Console.WriteLine(String.Join(",", cats));
}
}
class BaseCats : IComparable {
private readonly int _Age;
public BaseCats(string name, int age) {
_Age = age;
}
public override string ToString() {
return ""+ _Age;
}
public int CompareTo(object obj)
{
BaseCats bCats = obj as BaseCats;
if (bCats != null)
{
if (this._Age < bCats._Age)
{
return -1;
}
else if (this._Age > bCats._Age)
{
return 1;
}
else
{
return 0;
}
}
else
{
throw new Exception("Параметр должен быть типа BaseCats");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsKICAgICAgICBMaXN0PEJhc2VDYXRzPiBjYXRzID0gbmV3IExpc3Q8QmFzZUNhdHM+CiAgICAgICAgewogICAgICAgICAgICBuZXcgQmFzZUNhdHMoItCc0LDQvdGDIiwgNSksCiAgICAgICAgICAgIG5ldyBCYXNlQ2F0cygi0JzQsNGA0LPQviIsIDEwKSwKICAgICAgICAgICAgbmV3IEJhc2VDYXRzKCLQktCw0YHRj9C9IiwgNykKICAgICAgICB9OwogICAgICAgIGNhdHMuU29ydCgpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Kb2luKCIsIiwgY2F0cykpOwogICAgICAgIAogICAgfQp9CgpjbGFzcyBCYXNlQ2F0cyA6IElDb21wYXJhYmxlIHsKICAgIHByaXZhdGUgcmVhZG9ubHkgaW50IF9BZ2U7CiAgICAKICAgIHB1YmxpYyBCYXNlQ2F0cyhzdHJpbmcgbmFtZSwgaW50IGFnZSkgewogICAgICAgIF9BZ2UgPSBhZ2U7CiAgICB9CiAgICAKICAgIHB1YmxpYyBvdmVycmlkZSBzdHJpbmcgVG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuICIiKyBfQWdlOwogICAgfQogICAgCiAgICBwdWJsaWMgaW50IENvbXBhcmVUbyhvYmplY3Qgb2JqKQogICAgewogICAgICAgIEJhc2VDYXRzIGJDYXRzID0gb2JqIGFzIEJhc2VDYXRzOwogICAgICAgIGlmIChiQ2F0cyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHRoaXMuX0FnZSA8IGJDYXRzLl9BZ2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9BZ2UgPiBiQ2F0cy5fQWdlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCLQn9Cw0YDQsNC80LXRgtGAINC00L7Qu9C20LXQvSDQsdGL0YLRjCDRgtC40L/QsCBCYXNlQ2F0cyIpOwogICAgICAgIH0KICAgIH0KfQ==