fork(2) download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. public class ContactNumber
  8. {
  9.  
  10. public int PhoneNumber { get; set; }
  11.  
  12. public ContactNumber()
  13. {
  14.  
  15. }
  16. public ContactNumber(int numbers)
  17. {
  18. PhoneNumber = numbers;
  19. }
  20. }
  21. internal class User
  22. {
  23. public string ID { get; set; }
  24.  
  25. public string Name { get; set; }
  26.  
  27. public List<ContactNumber> AddressBook { get; set; }
  28. }
  29.  
  30. internal class Program
  31. {
  32.  
  33. private static void Main(string[] args)
  34. {
  35. Dictionary<int, User> dic = new Dictionary<int, User>();
  36. dic.Add(1, new User { ID = "id1", Name = "name1" });
  37. dic.Add(2, new User { ID = "id2", Name = "name2" });
  38. dic.Add(3, new User { ID = "id3", Name = "name3", AddressBook = new List<ContactNumber>(){new ContactNumber(3432),new ContactNumber(3213)} });
  39.  
  40. User user = dic.Where(z => z.Value.ID == "id3").FirstOrDefault().Value;
  41.  
  42. Console.WriteLine(user.Name);
  43. DisplayList(user);
  44. //Console.WriteLine(user.AddressBook.ToString());
  45.  
  46. //update the list
  47. addOrUpdate(dic,3,user);
  48.  
  49. //var used = new User { ID = "id1", Name = "Harry" };
  50. //dic[1] = used;
  51.  
  52. user = dic.Where(z => z.Value.ID == "id3").FirstOrDefault().Value;
  53.  
  54.  
  55. Console.WriteLine(user.Name);
  56. DisplayList(user);
  57.  
  58.  
  59. }
  60.  
  61. private static void DisplayList(User user)
  62. {
  63. foreach (ContactNumber number in user.AddressBook)
  64. {
  65. Console.WriteLine(number.PhoneNumber);
  66.  
  67. }
  68. }
  69.  
  70. //determin list length
  71.  
  72. public static void addOrUpdate(Dictionary<int, User> dic, int key, User user)
  73. {
  74. //sets a new user data and just replaces it in the dictionary
  75. //var used = new User { ID = "id1", Name = "Harry" };
  76. var used = new User{ ID = "id3", Name = "Henry" ,AddressBook = new List<ContactNumber>(){new ContactNumber(3111),new ContactNumber(4444)}};
  77.  
  78. if (dic.TryGetValue(key, out user))
  79. {
  80. // yay, value exists!
  81. dic[key] = used;
  82.  
  83. }
  84. else
  85. {
  86. // darn, lets add the value
  87. dic.Add(key, used);
  88. }
  89. }
  90.  
  91. }
Success #stdin #stdout 0.05s 24104KB
stdin
Standard input is empty
stdout
name3
3432
3213
Henry
3111
4444