2016-10-19 4 views
-2

students, coursesgrades 등 세 가지 목록이 있습니다. 내가하고 싶은 일은 coursesstudents 속성 중 일부를 grades 변수에 사용하는 것입니다. 여기 내 코드는 다음과 같습니다한 목록의 개체를 다른 목록의 참조로 지정하려면 어떻게합니까?

namespace educationsystem 
{ 
    public class student 
    { 
      public int scode { get; set; } 
      public string name { get;set;} 
      public string lastname {get;set;} 
      public long phone {get;set;} 
    } 
    public class course 
    { 
      public int code { get; set;} 
      public string name { set; get;} 
      public int unit { set; get;} 

    } 
    public class grade 
    { 
     public student studentinfo { get; set; } 
     public course courseinfo { get; set; } 
     public double value { get; set; } 
     public int term { get; set; } 
    } 

    public class education 
    { 


    } 
class Program 
{ 

    static void Main(string[] args) 
    { 

     List<student> Students = new List<student>(); 
     List<course> courses = new List<course>(); 
     List<int> grades = new List<int>(); 
     Students.Add(new student { scode=1,name = "mahta", lastname = "sahabi", phone = 3244 }); 
     Students.Add(new student { scode=2, name = "niki", lastname = "fard", phone = 5411 }); 
     Students.Add(new student { scode=3, name = "hana", lastname = "alipoor", phone = 6121 }); 
     courses.Add(new course { code = 1, name = "Mathemathics", unit = 3 }); 
     courses.Add(new course { code = 2, name = "physics", unit = 3 }); 
     courses.Add(new course { code = 3, name = "computer", unit = 3 }); 

     Students.ForEach((student) => { Console.WriteLine(student.scode+" "+student.name + " " + student.lastname + " " + student.phone); }); 
     courses.ForEach((course) => { Console.WriteLine(course.code + " " + course.name + " " + course.unit); }); 

     Console.ReadKey(); 
} 

내가 좋아하는 성적 인쇄 싶습니다 : 나는 그런 일을 할 수있는 방법

mahta sahabi 수학

(20)을?

+1

당신은 과정과 학생과 함께했는데 차이점은 없습니다. 수업 명에 접속하려면'grade.courseinfo.name'을 사용하십시오. – Valentin

+0

같은 줄에 쓰려면 WriteLine을 Write로 변경하십시오. –

+4

실제로 여기 * 묻고있는 내용에 대해 혼란 스럽습니다 ... –

답변

0

을 등급을 하드 코딩 및 인쇄하려면, 당신은 사용할 수 있습니다

List<grade> grades = new List<grade>(); // instead of List<int> 

// ... 

grades.Add(new grade 
{ 
    studentinfo = Students.Where(s => s.scode == 1).First(), 
    courseinfo = courses.Where(c => c.code == 1).First(), 
    value = 20.0d, 
    term = 1 
}); 

// ... 

grades.ForEach((grade) => { Console.WriteLine(grade.studentinfo.name + " " + grade.studentinfo.lastname + " " + grade.courseinfo.name + " " + grade.value); }); 

당신이 찾고 있던 무엇인가요?

+0

예! 정말 고맙습니다 –

0

grades 컬렉션을 만들 때 적절한 studentscourses을 연결해야합니다. 가능성이 많은이있을 것이기 때문에 당신은 그것을

grade.studentinfo.name 

grade.courseinfo.name 

를 탐색하여 assocation에 액세스 할 수 있습니다 : 학생들과 과정 사이의 많은 관계 방법을 통해 객체를 초기화에 대한 당신이 성적으로 연결을 정의 할 때 Dictionary는 각 학생 물론 쉽게 식별 할 수 있도록 :

var students = new [] 
{ 
    new student { scode=1,name = "mahta", lastname = "sahabi", phone = 3244 }, 
    new student { scode=2, name = "niki", lastname = "fard", phone = 5411 }, 
    ... etc 
}.ToDictionary(s => s.scode); 

var courses = new [] 
{ 
    new course { code = 1, name = "Mathemathics", unit = 3 }, 
    .... 
}.ToDictionary(c => c.code); 

var grades = new [] 
{ 
    new grade { term = 1, value = 53, student = students[1], course = courses[2] }, 
    new grade { term = 2, value = 99, student = students[1], course = courses[1] }, 
... 
} 
그런 번째 인쇄 할 수 있습니다

ese out so 이렇게 말하십시오 :

foreach(var grade in grades) 
{ 
    Console.WriteLine($"{grade.studentinfo.name} {grade.courseinfo.name} {grade.value}"); 
} 
관련 문제