Нужна сортировка по дате рождения, а как ее сделать не знаю - C#
Формулировка задачи:
Вот все что смог написать. Помогите сделать сортировку по дате рождения.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kyrsovaiya
{
public class person //базовый класс содержащий фамилию и инициалы
{
public string SecondName;//переменная содержащая фамилию
public string Inic;//переменная содержащая инициалы
}
public class sing : person//класс на основе базового содержащий знак зодиака, символ года, доту рождения
{
public String ZnakZodiaka;//переменная содержащая знак зодиака
public String SimvolGoda;//переменная содержащая символ года
public String DataRozhdeniya;//переменная содержащая дату рождения
public sing(String SecondName, String Inic, String ZnakZodiaka, String SimvolGoda, String DataRozhdeniya)//конструктор с параметрами
{
this.SecondName = SecondName;
this.Inic = Inic;
this.ZnakZodiaka = ZnakZodiaka;
this.SimvolGoda = SimvolGoda;
this.DataRozhdeniya = DataRozhdeniya;
}
}
class Programm
{
static void Main(string[] args)
{
Random rand = new Random();//случайное заполнение
sing[] s = new sing[15];//создаем массив из 10 элементов типа sing
String[] sn = {"Осипов","Дроздов","Сидоров","Хомяков","Иванова","Петров","Дремин","Калинина","Кравченко","Бутузов","Ефрюшин","Фомина","Авдеев","Титов","Хряков" };//массив фамилий
String[] s1 = { "М.И", "М.Ю", "Е.Ф", "В.И", "М.О", "В.В", "Д.А", "И.В", "Р.В", "С.Б","В.Н" };//массив инициалов
String[] zz = { "Овен","Телец","Близнецы","Рак","Лев","Дева","Весы","Скорпион","Стрелец","Козерог","Водолей","Рыба"};//массив знаков зодиака
String[] sg = { "Крыса","Бык","Тигр","Кролик","Дракон","Змея","Лошадь","Овца","Обезьяна","Петух","Собака","Свинья"};//массив символов года
String[] dr = { "10.12.1975", "9.10.1994", "9.09.2000", "29.04.1992", "30.12.1986", "1.01.2001", "2.09.1987" };//массив даты рождения
Console.WriteLine("Вывод упорядоченный по дате рождения");//вывод фразы на экран
Console.WriteLine();
for (int i = 0; i < s.Length; i++)//цикл
{
int v = rand.Next(0, 12);
int e = rand.Next(0, 11);
int c = rand.Next(0,12);
int b = rand.Next(0,7);
s[i] = new sing(sn[i], s1[e], zz[c], sg[v], dr[b]);
}
for (int i = 0; i < s.Length; i++)
{
for (int l = 0; l < dr.Length; l++) { Console.Write(dr[l] + " "); }
Console.WriteLine(s[i].SecondName + " " + s[i].Inic + "\nДата рождения: " + s[i].DataRozhdeniya + "\nЗнак зодиака: " + s[i].ZnakZodiaka + "\nСимвол года:" + s[i].SimvolGoda);//вывод на экран результата
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Введите знак зодиака");//вывод фразы на экран
Console.WriteLine("для поиска:");//вывод фразы на экран
Console.WriteLine();
string znak = Console.ReadLine();//переменная с названием дисциплины которую необходимо найти
Console.WriteLine();
bool konec = true;//создаем переменную логического типа и присваиваем значение "true"
for (int i = 0; i < s.Length; i++)//цикл
{
if (znak == s[i].ZnakZodiaka)//проверяем условие и выводим фамилию, символ года, дату рождения на экран
{
Console.WriteLine();
Console.WriteLine(s[i].SecondName + " " + s[i].Inic + "\nСимвол года: " + s[i].SimvolGoda + "\nДата рождения: " + s[i].DataRozhdeniya);//вывод на экран
konec = false;
}
}
if (konec)
Console.WriteLine("\nТакого знака нет!");
konec = false;//если человека с таким знаком зодиака нет то выводим сообщение.
Console.ReadLine();
}
}
}Решение задачи: «Нужна сортировка по дате рождения, а как ее сделать не знаю»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Kyrsovaiya
{
public class person //базовый класс содержащий фамилию и инициалы
{
public string SecondName;//переменная содержащая фамилию
public string Inic;//переменная содержащая инициалы
}
public class sing : person,IComparable//класс на основе базового содержащий знак зодиака, символ года, доту рождения
{
public String ZnakZodiaka;//переменная содержащая знак зодиака
public String SimvolGoda;//переменная содержащая символ года
public String DataRozhdeniya;//переменная содержащая дату рождения
public sing(String SecondName, String Inic, String ZnakZodiaka, String SimvolGoda, String DataRozhdeniya)//конструктор с параметрами
{
this.SecondName = SecondName;
this.Inic = Inic;
this.ZnakZodiaka = ZnakZodiaka;
this.SimvolGoda = SimvolGoda;
this.DataRozhdeniya = DataRozhdeniya;
}
//реализуем интерфейс
public int CompareTo(object o)
{
sing temp = (sing)o;
return this.DataRozhdeniya.CompareTo(temp.DataRozhdeniya);
}
}
class Programm
{
static void Main(string[] args)
{
List<sing> persons = new List<sing>();
persons.Add(new sing("q", "q", "q", "q", "123"));
persons.Add(new sing("q", "q", "q", "q", "023"));
persons.Add(new sing("q", "q", "q", "q", "003"));
persons.Sort();
}
}
}