Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса) - C#

Узнай цену своей работы

Формулировка задачи:

Вот сама задача: Дан массив данных о работающих на фабрике: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год). Определить, есть ли в списке Ивановы (Иванов, Иванова), если есть, то вывести их адрес (адреса) и посчитать из них количество, проработавших не менее двух лет на сегодняшний день. Проблема в том, что я не знаю как сделать так, чтобы код проверял только Ивановых! структура с фамилией
public string familia;
Вот фрагмент кода, который проверяет, работает ли человек более 2 лет, как написать, чтобы он проверял Иванов или нет?
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();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы