sivancheva

MentorGroup

Oct 21st, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Globalization;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _24_08_MentorGroup
  9. {
  10. class MentorGroup
  11. {
  12. static void Main(string[] args)
  13. {
  14. var input = Console.ReadLine();
  15.  
  16. var result = new Dictionary<string, Student>();
  17.  
  18. while (input != "end of dates")
  19. {
  20. var inputNameDates = input.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
  21. string name = inputNameDates[0];
  22.  
  23. List<DateTime> datesToAdd = new List<DateTime>();
  24.  
  25. if (inputNameDates.Length > 1)
  26. {
  27. for (int i = 1; i < inputNameDates.Length; i++)
  28. {
  29. DateTime date = DateTime.ParseExact(inputNameDates[i], "dd/MM/yyyy", CultureInfo.InvariantCulture);
  30. datesToAdd.Add(date);
  31. }
  32. }
  33. Student studentToAdd = new Student();
  34. studentToAdd.Dates = new List<DateTime>();
  35. studentToAdd.Comments = new List<string>();
  36. studentToAdd.Dates.AddRange(datesToAdd);
  37.  
  38. if (!result.ContainsKey(name))
  39. {
  40. result.Add(name, new Student());
  41. result[name] = studentToAdd;
  42. }
  43. else if (result.ContainsKey(name))
  44. {
  45. result[name].Dates.AddRange(datesToAdd);
  46. }
  47.  
  48. input = Console.ReadLine();
  49. }
  50. input = Console.ReadLine();
  51.  
  52. while (input != "end of comments")
  53. {
  54. var inputNameComments = input.Split(new[] { '-' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
  55. string name = inputNameComments[0];
  56.  
  57. List<string> commentsToAdd = new List<string>();
  58.  
  59. if (inputNameComments.Length > 1)
  60. {
  61. for (int i = 1; i < inputNameComments.Length; i++)
  62. {
  63. commentsToAdd.Add(inputNameComments[i]);
  64. }
  65. }
  66. if (result.ContainsKey(name))
  67. {
  68. result[name].Comments.AddRange(commentsToAdd);
  69. }
  70.  
  71. input = Console.ReadLine();
  72. }
  73. foreach (var student in result.OrderBy(x => x.Key))
  74. {
  75. Console.WriteLine($"{student.Key}");
  76.  
  77. Console.WriteLine($"Comments:");
  78.  
  79. foreach (var comment in student.Value.Comments)
  80. {
  81. Console.WriteLine($"- {comment}");
  82. }
  83.  
  84. Console.WriteLine("Dates attended:");
  85. foreach (var date in student.Value.Dates.OrderBy(x => x))
  86. {
  87. Console.WriteLine($"-- {date:dd/MM/yyyy}");
  88. }
  89.  
  90. }
  91.  
  92. }
  93. }
  94. class Student
  95. {
  96. public List<string> Comments { get; set; }
  97. public List<DateTime> Dates { get; set; }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment