Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса) - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д