728x90
namespace ConsoleApp1
{
public class Student
{
public string Name { get; set; }
public Course CourseTaken { get; set; }
}
public class Course
{
public string Title { get; set;}
public int CreditHours { get; set;}
}
internal class Program
{
static void Main(string[] args)
{
JoinOpertaor();
}
public static void JoinOpertaor()
{
Course hci = new Course
{
Title = "검은 오리",
CreditHours = 10
};
Course iis = new Course
{
Title = "벤자민 버튼의 시간은 거꾸로 간다",
CreditHours = 10
};
Student carol = new Student
{
Name = "벤자민",
CourseTaken = hci
};
Student riri = new Student
{
Name = "장백호",
CourseTaken = iis
};
List<Course> courses = new List<Course>
{
hci, iis
};
List<Student> students = new List<Student>
{
carol, riri
};
var query = courses.Join(
students, courses => courses, students => students.CourseTaken, (courses, students) => new
{
StudentName = students.Name,
CoursesTaken = courses.Title
});
foreach (var item in query)
{
Console.WriteLine("{0}-{1}", item.StudentName, item.CoursesTaken);
}
// 쿼리식
var query2 =
from c in courses
join s in students on c.Title equals s.CourseTaken.Title
select new
{
StuentName = s.Name,
CourseTaken = c.Title
};
foreach (var item in query2)
{
Console.WriteLine("{0}-{1}", item.StuentName , item.CourseTaken);
}
}
}
}
LINQ에는 Join과 GroupJoin이라는 두가지 연산자가 있다
courses와 students에 Join 연사자를 적용해 무명 형식의 결과를 얻는다
728x90
'c#' 카테고리의 다른 글
_ConnectionManager.cs (0) | 2023.08.30 |
---|---|
[gitlab] 커밋오류 Another git process seems to be running in this repository 어쩌고.. (0) | 2023.06.07 |
C# 연습문제 모음 (0) | 2023.02.06 |
Entity Framework Core의 Code-First (0) | 2023.01.31 |
[C#] 고유성 이중판정 피하기 (0) | 2023.01.31 |