[C#] 17일차 - 123. 쿼리의 결과를 새로운 객체 컬렉션으로 저장하는 방법C#/C#200제2021. 2. 16. 20:48
Table of Contents
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A123_LinqToCollection
{
// Student 클래스의 정의
class Student
{
public string Name { get; set; }
public int Id { get; set; }
public List<int> Scores { get; set; }
}
class Program
{
static List<Student> students;
static void Main(string[] args)
{
students = new List<Student>
{
new Student { Name="PjKim", Id = 190001001, Scores=new List<int>{86,90,76 } },
new Student { Name="BsKim", Id = 190001002, Scores=new List<int>{56,92,93 } },
new Student { Name="YsCho", Id = 190001003, Scores=new List<int>{69,85,75 } },
new Student { Name="BiKang", Id = 190001004, Scores=new List<int>{88,80,57 } }
};
Print(students);
HighScore(0, 85); // 첫 번째 시험에서 85점 이상인 학생 출력
HighScore(1, 90); // 두 번째 시험에서 90점 이상인 학생 출력
}
private static void HighScore(int exam, int cut)
{
var highScores = from student in students
where student.Scores[exam] >= cut
select new { Name = student.Name, Score = student.Scores[exam] };
Console.WriteLine($"{exam + 1}번째 시험에서 {cut} 이상의 점수를 받은 학생");
foreach (var item in highScores)
Console.WriteLine($"\t{item.Name,-10}{item.Score}");
}
private static void Print(List<Student> data)
{
foreach(var item in data)
{
Console.Write($"{item.Id,-10}{item.Name,-10}");
foreach (var score in item.Scores)
Console.Write($"{score,-5}");
Console.WriteLine(item.Scores.Average().ToString("F2"));
}
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 18일차 - 125. WinForm 프로젝트의 생성 (0) | 2021.02.17 |
---|---|
[C#] 17일차 - 124. Linq, Group By로 데이터를 분류 (0) | 2021.02.16 |
[C#] 17일차 - 122. LINQ의 결과를 리스트나 배열로 반환 (0) | 2021.02.16 |
[C#] 17일차 - 121. LINQ를 이용한 조건 검색과 정렬 (0) | 2021.02.16 |
[C#] 17일차 - 120. LINQ의 기초 (0) | 2021.02.15 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!