Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса) - C#
Формулировка задачи:
Вот сама задача: Дан массив данных о работающих на фабрике: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год). Определить, есть ли в списке Ивановы (Иванов, Иванова), если есть, то вывести их адрес (адреса) и посчитать из них количество, проработавших не менее двух лет на сегодняшний день.
Проблема в том, что я не знаю как сделать так, чтобы код проверял только Ивановых!
структура с фамилией
Вот фрагмент кода, который проверяет, работает ли человек более 2 лет, как написать, чтобы он проверял Иванов или нет?
public string familia;
for (int i = 0; i < n; i++) { if (((c - mas[i].date.year) * 12 + mas[i].date.month) >= 24) k++; }
Решение задачи: «Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса)»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; public struct FullName { public string surname; public string name; public string patr; public override string ToString() { return String.Format("{0} {1} {2}", surname, name, patr); } } public struct Address { public string street; public uint home; public uint ap; public override string ToString() { return String.Format("{0} {1} {2}", street, home, ap); } } public struct Date { public uint month; public uint year; public override string ToString() { return String.Format("{0} {1}", month, year); } } public struct Employee { public FullName fullname; public Address address; public Date date; public override string ToString() { return String.Format("ФИО: {0}, Адрес: {1}, Дата: {2}", fullname, address, date); } } public class Program { public static void Main() { List<Employee> list = new List<Employee> { new Employee{fullname = new FullName{surname = "Иванов", name = "Иван", patr = "Иванович"}, address = new Address{street = "Железнодорожников", home = 22, ap = 121}, date = new Date{month = 12, year = 2016}}, new Employee{fullname = new FullName{surname = "Иванов", name = "Семен", patr = "Вениаминович"}, address = new Address{street = "Гоголя", home = 60, ap = 92}, date = new Date{month = 4, year = 2008}}, new Employee{fullname = new FullName{surname = "Петров", name = "Петр", patr = "Петрович"}, address = new Address{street = "Тимирязева", home = 12, ap = 41}, date = new Date{month = 8, year = 2012}}, new Employee{fullname = new FullName{surname = "Иванова", name = "Ольга", patr = "Михайловна"}, address = new Address{street = "Пушкинская", home = 4, ap = 190}, date = new Date{month = 2, year = 2015}} }; var data = from d in list where d.fullname.surname == "Иванов" || d.fullname.surname == "Иванова" select d; uint count = 0; foreach(var d in data) { Console.WriteLine(d); if (DateTime.Now.Year - d.date.year > 2|| (DateTime.Now.Year - d.date.year == 2 && DateTime.Now.Month >= d.date.month)) ++count; } Console.WriteLine("Из них проработали не менее двух лет: {0}", count); Console.ReadLine(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д