/*
* Created by SharpDevelop.
* User: WST1
* Date: 2016/07/30
* Time: 14:27
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections;
using System.Collections.Generic;
namespace Test
{
public class 参照 {
public List<講師> 講師陣;
public List<学生> 学生達;
public void Add(講師 追加する講師, 学生 追加する学生) {
追加する講師.教えてる学生達.Add(追加する学生);
講師陣.Add(追加する講師);
追加する学生.師事する講師達.Add(追加する講師);
学生達.Add(追加する学生);
}
public 参照(){ 講師陣 = new List<講師>(); 学生達 = new List<学生>();}
}
public class 講師 {
public string Id {get;set;}
public List<学生> 教えてる学生達;
public 講師(){ 教えてる学生達 = new List<学生>();}
}
public class 学生 {
public string Id {get;set;}
public List<講師> 師事する講師達;
public 学生(){ 師事する講師達 = new List<講師>();}
}
class Program
{
public static void Main(string[] args)
{
var 参照実体 = new 参照();
var 講師A = new 講師{ Id = "講師A" };
var 講師B = new 講師{ Id = "講師B" };
var 学生A = new 学生{ Id = "学生A" };
var 学生B = new 学生{ Id = "学生B" };
var 学生C = new 学生{ Id = "学生C" };
// 学生Aは講師Aの生徒、学生Bは講師Bの生徒、学生Cは講師Aと講師Bの生徒
参照実体.Add(講師A, 学生A);
参照実体.Add(講師B, 学生B);
参照実体.Add(講師A, 学生C);
参照実体.Add(講師B, 学生C);
Console.WriteLine("講師Aの生徒数" + 講師A.教えてる学生達.Count);
Console.WriteLine("講師Bの生徒数" + 講師B.教えてる学生達.Count);
Console.WriteLine("学生Aの講師数" + 学生A.師事する講師達.Count);
Console.WriteLine("学生Bの講師数" + 学生B.師事する講師達.Count);
Console.WriteLine("学生Cの講師数" + 学生C.師事する講師達.Count);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}