Отсортировать по алфавиту, защитить ввод от символов - C#
Формулировка задачи:
Требуется: Описать структуру с именем Worker, содержащую следующие поля:
• фамилия и инициалы работника;
• название занимаемой должности;
• год поступления на работу.
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из пяти элементов типа Worker (записи должны
быть упорядочены по алфавиту);
• если значение года введено не в соответствующем формате выдает исключение.
• вывод на экран фамилии работника, стаж работы которого превышает введенное значение.
Как в моей шляпе отсортировать по алфавиту и защитить год от введения символов и null or Empty?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication2
{
struct Worker
{
//поля
private string surName;
private string initials;
private string nameOfThePositionHeld;
private int yearOfEmployment;
public string SurName
{
get { return surName; }
set { surName = value; }
}
public string Initials
{
get { return initials; }
set { initials = value; }
}
public string NameOfThePositionHeld
{
get { return nameOfThePositionHeld; }
set { nameOfThePositionHeld = value; }
}
public int YearOfEmployment
{
get { return yearOfEmployment; }
set
{
if (value <= DateTime.Now.Year && DateTime.Now.Year - value <= 50)
{
yearOfEmployment = value;
}
else
{
Console.WriteLine("Неверно задан год! Повторите");
YearOfEmployment = Convert.ToInt32(Console.ReadLine());
}
}
}
class Program
{
static void Main()
{
Worker[] worker = new Worker[5];
for (int i = 0; i < worker.Length; i++)
{
Console.WriteLine("Введите Фамилию: ");
worker[i].SurName = Console.ReadLine();
Console.WriteLine("Введите инициалы: ");
worker[i].Initials = Console.ReadLine();
Console.WriteLine("Введите должность: ");
worker[i].NameOfThePositionHeld = Console.ReadLine();
Console.WriteLine("Год поступления на работу: ");
string x = Console.ReadLine();
try
{
worker[i].YearOfEmployment = Convert.ToInt32(x);
}
catch (Exception e)
{
Console.WriteLine("Введите год. Пример: 1991");
Console.WriteLine(e.Message);
// worker[i].YearOfEmployment = DateTime.Now.Year;
}
Console.WriteLine(new string('-', 50));
Console.Clear();
}
Console.WriteLine(new string('-', 50));
Console.ReadKey();
}
}
}
}Решение задачи: «Отсортировать по алфавиту, защитить ввод от символов»
textual
Листинг программы
Console.WriteLine("{0} {1} {2} {3}", worker.SurName, worker.Initials, worker.NameOfThePositionHeld, worker.yearOfEmployment);