728x90
반응형
Study about LINQ
LINQ의 기본
- from : 어떤 데이터 집합에서 찾을 것인가?
- where : 어떤 값의 데이터를 찾을 것인가?
- select : 어떤 항목을 추출할 것인가?
group by로 데이터 분류
static void Main(string[] args)
{
class Profile
{
public string Name { get; set; }
public int Height { get; set; }
}
static void Main(string[] args)
{
Profile[] arrProfile =
{
new Profile(){Name = "Hugh", Height = 171},
new Profile(){Name = "John", Height = 182},
new Profile(){Name = "Wendy", Height = 162}
new Profile(){Name = "Joy", Height = 176},
};
var profiles = from profile in arrProfile
where profile.Height < 175
orderby profile.Height
select new
{
Name = profile.Name,
InchHeight = profile.Height * 0.393
};
foreach (var profile in profiles)
{
Console.WirteLine($"{profile.Name}, {profile.InchHeight}");
}
// group by 이용
var listProfile = from profile in arrProfile
orderby profile.Height
group profile by profile.Hegiht < 175 into g
select new {GroupKey = g.key, Profiles = g};
foreach(var Group in listProfile)
{
Console.WriteLine($"175cm 미만 : {Group.GroupKey}");
foreach(var profile in Group.Profiles)
{
Console.WirteLine($"{profile.Name}, {profile.Height}");
}
}
}
}
- 모든 LINQ는 반드시 from절로 시작
- from <범위 변수> in <데이터 원본>
- 쿼리식의 대상이 될 데이터 원본은 IEnumerable 인터페이스를 상속하는 형식이다.
- where은 Filter 역할로 from 절의 범위 변수가 가져야 하는 조건을 입력
- orderby는 데이터 정렬을 수행하는 연산자로 정렬 기준을 매개변수로 입력
- select는 최종 결과를 추출하는 쿼리식의 마침표 같은 존재
- LINQ 결과는 IEnumerable로 반환, 형식 매개변수 T는 select에 의해 결정
- group by 는 조건에 맞게 그룹으로 나눠 묶는데 예제에선 175cm 미만으로 묶음
728x90
반응형
'C# 공부' 카테고리의 다른 글
serializable (0) | 2021.08.26 |
---|---|
reflection (0) | 2021.08.26 |
lambda (0) | 2021.08.26 |
dynamic (0) | 2021.08.26 |
property (0) | 2021.08.25 |