fork download
  1. /*
  2.  * Created by SharpDevelop.
  3.  * User: WST1
  4.  * Date: 2016/07/30
  5.  * Time: 14:27
  6.  *
  7.  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  8.  */
  9. using System;
  10. using System.Collections;
  11. using System.Collections.Generic;
  12.  
  13. namespace Test
  14. {
  15. public class 参照 {
  16. public List<講師> 講師陣;
  17. public List<学生> 学生達;
  18. public void Add(講師 追加する講師, 学生 追加する学生) {
  19. 追加する講師.教えてる学生達.Add(追加する学生);
  20. 講師陣.Add(追加する講師);
  21.  
  22. 追加する学生.師事する講師達.Add(追加する講師);
  23. 学生達.Add(追加する学生);
  24. }
  25. public 参照(){ 講師陣 = new List<講師>(); 学生達 = new List<学生>();}
  26. }
  27.  
  28. public class 講師 {
  29. public string Id {get;set;}
  30. public List<学生> 教えてる学生達;
  31. public 講師(){ 教えてる学生達 = new List<学生>();}
  32. }
  33.  
  34. public class 学生 {
  35. public string Id {get;set;}
  36. public List<講師> 師事する講師達;
  37. public 学生(){ 師事する講師達 = new List<講師>();}
  38. }
  39.  
  40. class Program
  41. {
  42. public static void Main(string[] args)
  43. {
  44. var 参照実体 = new 参照();
  45. var 講師A = new 講師{ Id = "講師A" };
  46. var 講師B = new 講師{ Id = "講師B" };
  47. var 学生A = new 学生{ Id = "学生A" };
  48. var 学生B = new 学生{ Id = "学生B" };
  49. var 学生C = new 学生{ Id = "学生C" };
  50.  
  51. // 学生Aは講師Aの生徒、学生Bは講師Bの生徒、学生Cは講師Aと講師Bの生徒
  52.  
  53. 参照実体.Add(講師A, 学生A);
  54. 参照実体.Add(講師B, 学生B);
  55. 参照実体.Add(講師A, 学生C);
  56. 参照実体.Add(講師B, 学生C);
  57.  
  58. Console.WriteLine("講師Aの生徒数" + 講師A.教えてる学生達.Count);
  59. Console.WriteLine("講師Bの生徒数" + 講師B.教えてる学生達.Count);
  60. Console.WriteLine("学生Aの講師数" + 学生A.師事する講師達.Count);
  61. Console.WriteLine("学生Bの講師数" + 学生B.師事する講師達.Count);
  62. Console.WriteLine("学生Cの講師数" + 学生C.師事する講師達.Count);
  63. Console.Write("Press any key to continue . . . ");
  64. Console.ReadKey(true);
  65. }
  66. }
  67. }
Success #stdin #stdout 0.04s 24008KB
stdin
Standard input is empty
stdout
講師Aの生徒数2
講師Bの生徒数2
学生Aの講師数1
学生Bの講師数1
学生Cの講師数2
Press any key to continue . . .