Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace HomeWork
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11.  
  12. var people = CreatePeople();
  13.  
  14. var distinctPeople = people.Distinct(new Comparer()).OrderBy(x => x.Name);
  15.  
  16. foreach (var person in distinctPeople)
  17. {
  18. Console.WriteLine($"Person name: {person.Name}");
  19. }
  20.  
  21. }
  22.  
  23. private static List<Person> CreatePeople()
  24. {
  25. return new List<Person>
  26. {
  27. new Person() { Name = "Nancy", Age = 7, PhoneNumber = "1", Languages = new List<string> {"English", "French", "Spanish", "Polish", "Ukrainian", "Portugal" }, },
  28.  
  29. new Person() { Name = "Nancy", Age = 18, PhoneNumber = "1", Languages = new List<string> {"Spanish", "Polish", "Ukrainian", "Portugal" }, },
  30.  
  31. new Person() { Name = "Bob", Age = 10, PhoneNumber = "2", Languages = new List<string> {"Spanish", "Polish", "Ukrainian" }, },
  32.  
  33. new Person() { Name = "Bob", Age = 20, PhoneNumber = "2", Languages = new List<string> {"Spanish", "Portugal" }, },
  34.  
  35. new Person() { Name = "Bob", Age = 11, PhoneNumber = "2", Languages = new List<string> {"Spanish", "Polish", "Ukrainian", "Portugal" }, },
  36.  
  37. new Person() { Name = "Bob", Age = 2, PhoneNumber = "2", Languages = new List<string> {"English", "French", "Spanish"}, },
  38.  
  39. new Person() { Name = "Ashtray", Age = 24, PhoneNumber = "3", Languages = new List<string> {"English", "French", "Spanish", "Polish", "Ukrainian", "Portugal" }, },
  40.  
  41. new Person() { Name = "Nelson", Age = 80, PhoneNumber = "4", Languages = new List<string> {"English", "Polish", "Ukrainian", "Portugal" }, },
  42.  
  43. new Person() { Name = "Monica", Age = 15, PhoneNumber = "5", Languages = new List<string> {"English", "French", "Spanish", "Polish", "Ukrainian" }, }
  44. };
  45. }
  46. }
  47.  
  48. class Comparer : IEqualityComparer<Person>
  49. {
  50. public bool Equals(Person x, Person y)
  51. {
  52. return x.Name == y.Name;
  53. }
  54.  
  55. public int GetHashCode(Person obj)
  56. {
  57. return obj.Name.GetHashCode();
  58. }
  59. }
  60.  
  61. class Person
  62. {
  63. public int Age { get; set; }
  64.  
  65. public string PhoneNumber { get; set; }
  66.  
  67. public string Name { get; set; }
  68.  
  69. public List<string> Languages { get; set; }
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement