C#

Решить текстовую задачу с использованием словаря на C#

Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности.
A.
Andy .
59
using System;
using System.Collections.Generic;

class Company
{
public Company(string title, int numberOfEmployees, int salary)
{
Title = title;
NumberOfEmployees = numberOfEmployees;
Salary = salary;
}

public string Title { get; }

public int NumberOfEmployees { get; set; }

public int Salary { get; }
}

class Work
{
public Work(string title, int salary)
{
Title = title;
Salary = salary;
}

public string Title { get; }

public int Salary { get; }
}

struct Worker
{
public Worker(string surname, int salary, int workExperience, Work post)
{
Surname = surname;
Salary = salary;
WorkExperience = workExperience;
Post = post;
}

public string Surname { get; }

public int Salary { get; }

public int WorkExperience { get; }

public Work Post { get; }

public override string ToString() => Surname + ", " + Salary + ", " + WorkExperience + ", " + Post;
}

class Program
{
static void Main()
{
Company company = new Company("C# studio", 15, 25000);
var workers = new Dictionary();

Random rnd = new Random();
for (int i = 0; i < company.NumberOfEmployees; i++)
{
Work work = new Work("Work " + (i + 1), rnd.Next(10000, 30000));
workers.Add(i, new Worker("Name " + (i + 1), rnd.Next(work.Salary / 2, work.Salary * 2), rnd.Next(0, 15), work));
}

Console.WriteLine("Список тех, у кого заработная плата за месяц является ниже средней по предприятию:");
ShowWithLowerAverageSalary(workers);

Console.WriteLine("Список тех, кто проработал на предприятии более 10 лет:");
ShowWithMoreTenYearsExperience(workers);

Console.ReadLine();
}

private static void ShowWithLowerAverageSalary(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].Post.Salary > workers[i].Salary)
Console.WriteLine(workers[i].Surname + "-" + workers[i].Salary);
}

private static void ShowWithMoreTenYearsExperience(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].WorkExperience > 10)
Console.WriteLine(workers[i].ToString());
}
}
Артем Попов
Артем Попов
1 341
Лучший ответ
Andy . Выводит ошибки:
main.cs(77,48): error CS0305: Using the generic type `System.Collections.Generic.Dictionary' requires `2' type argument(s)
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous error)

main.cs(84,52): error CS0305: Using the generic type `System.Collections.Generic.Dictionary' requires `2' type argument(s)
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous error)
Дерзай