Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Globalization;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _08.RealProgram
- {
- class Program
- {
- class Student
- {
- public string Name { get; set; }
- public List<DateTime> Dates { get; set; }
- public List<string> Comments { get; set; }
- }
- static void Main(string[] args)
- {
- List<Student> studentNameAndDates = ReadStudentInfo();
- List<Student> studnetNameAndComments = ReadComments(studentNameAndDates);
- PrintResult(studnetNameAndComments);
- }
- static void PrintResult(List<Student> studnetNameAndComments)
- {
- foreach (var name in studnetNameAndComments.OrderBy(a => a.Name))
- {
- Console.WriteLine($"{name.Name}");
- Console.WriteLine("Comments:");
- foreach (var comment in name.Comments)
- {
- Console.WriteLine($"- {comment}");
- }
- Console.WriteLine("Dates attended:");
- foreach (var date in name.Dates.OrderBy(a => a))
- {
- Console.WriteLine($"-- {date:dd/MM/yyyy}");
- }
- }
- }
- static List<Student> ReadComments(List<Student> studentNameAndDates)
- {
- while (true)
- {
- var nameAndComment = Console.ReadLine().Split('-').ToList();
- if (nameAndComment[0] == "end of comments" || nameAndComment[0] == "end of dates")
- {
- return studentNameAndDates;
- }
- var name = nameAndComment[0];
- var comment = nameAndComment[1];
- if (studentNameAndDates.Any(a => a.Name == name))
- {
- Student abv = studentNameAndDates.First(a => a.Name == name);
- abv.Comments.Add(comment);
- }
- }
- }
- static List<Student> ReadStudentInfo()
- {
- List<Student> nameDate = new List<Student>();
- while (true)
- {
- var nameAndDate = Console.ReadLine().Split(' ', ',').ToList();
- if (nameAndDate[0] == "end")
- {
- return nameDate;
- }
- var date = nameAndDate.Skip(1).ToList();
- var name = nameAndDate[0];
- var info = new Student();
- info.Dates = new List<DateTime>() ;
- if (nameDate.Any(a => a.Name == name))
- {
- for (int i = 0; i < date.Count; i++)
- {
- info.Dates.Add(DateTime.ParseExact(date[i], "dd/MM/yyyy", CultureInfo.InvariantCulture));
- }
- }
- else
- {
- info.Name = name;
- for (int i = 0; i < date.Count; i++)
- {
- info.Dates.Add(DateTime.ParseExact(date[i], "dd/MM/yyyy", CultureInfo.InvariantCulture));
- }
- info.Comments = new List<string>();
- nameDate.Add(info);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement