using System.Collections.Generic;
public static void Main()
List<Person> per = new List<Person>
new Person("Первый", 20),
new Student("Второй",18,2,10),
Console.WriteLine("\nПоиск:\n");
var person = Find(arr, name);
if (person == null) Console.WriteLine("Такого студента нет в списке");
Console.WriteLine(person);
public static Person Find(Person[] array, string name)
var arr = array.OrderBy(x => x.Name).ToArray();
for (int i = 0; i < arr.Length; i++)
var compare = arr[c].Name.CompareTo(name);
if (compare == 1) { b = c; c = (a + b) / 2; }
else if (compare == -1) { a = c; c = (a + b) / 2; }
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
public Person() : this("Unknown", 0) { }
public override string ToString()
return string.Format("{0} ({1})", Name, Age);
public class Student : Person
public int Kurs { get; set; }
public double Rating { get; set; }
public Student(string name, int age, int kurs, double rating)
public Student(int kurs, double rating)
: this("Unknown", 0, kurs, rating) { }
public Student() : this(1, 0) { }
public Student(string name, int age) : this(name, age, 1, 0) { }
public override string ToString()
return string.Format("{0}\t{1} курс - [{2}]", base.ToString(), Kurs, Rating);