Записать в массив структур информацию о людях в следующем виде: ФИО, знак зодиака, дата рождения - C#
Формулировка задачи:
Записать в массив структур информацию о людях в следующем виде: ФИО, знак зодиака, дата рождения (массив из трех чисел). Отыскать в массиве структур и вывести на экран информацию о людях, соответствующего знака зодиака, введенного с клавиатуры. и записать в новую структуру. Отсортировать массив по знаку зодиака.
Решение задачи: «Записать в массив структур информацию о людях в следующем виде: ФИО, знак зодиака, дата рождения»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Person> persons = new List<Person> {
new Person("Маша","Овен", new int[]{10, 01, 1994}),
new Person("Николай","Скорпион", new int[]{24, 11, 2001}),
new Person("Сергей","Весы", new int[]{06, 18, 2010}),
new Person("Юлия","Скорпион", new int[]{12, 11, 1996}),
new Person("Борис","Дева", new int[]{30, 03, 2003})
};
foreach (var p in persons)
{
Console.WriteLine(p);
}
Console.WriteLine();
Console.WriteLine("Введите знак зодиака:");
string s = Console.ReadLine();
var result = persons.Where(p => p.Zodiac == s);
if (result.Count() == 0)
Console.WriteLine("Выбранного знака зодиака нет");
foreach (var r in result)
{
Console.WriteLine("Найдено совпадений: {0}", result.Count());
Console.WriteLine(r);
}
Console.WriteLine();
var filteredResult = persons.OrderBy(p => p.Zodiac.ToString());
foreach (var r in filteredResult)
{
Console.WriteLine(r);
}
Console.ReadLine();
}
private static int Parse(string p)
{
throw new NotImplementedException();
}
}
struct Person
{
public string Name { get; private set; }
public string Zodiac { get; private set; }
public int[] Date { get; private set; }
public Person(string name, string zodiac, int[] date)
: this()
{
Name = name;
Zodiac = zodiac;
Date = date;
}
public override string ToString()
{
string[] s = new string[] { Date[0].ToString(), Date[1].ToString(), Date[2].ToString() };
return string.Format("ФИО: {0}, Знак: {1}, Дата рождения: {2}",
Name, Zodiac.ToString(), string.Join(".", s));
}
}
}