[C# 문법] LINQ 그룹화와 정렬 기능 사용방법
- C#/C# 문법
- 2019. 8. 16. 02:00
안녕하세요~~
오늘은 Linq에서 특정 데이터를 조회할 때, 그룹화를 해서 조회를 하고, 조회된 데이터를 정렬까지 하는 방법에 대해서 알려드리고자 합니다.
시나리오
1. string[] 형태의 배열 변수를 하나 선언하고, 해당 변수에 여러 문자들을 저장한다.
2. 저장된 변수들에서 문자열의 길이를 기준으로 그룹화 시켜준다.
3. 그룹화가 되었으면, 문자열의 길이별로 정렬을 시킨다.
4. 출력한다.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace test22 { class Program { static void Main(string[] args) { string[] datas = { "Hello", "GoodBye", "ByeBye", "beombeomjojo", "linq", "world" };
var query = from data in datas orderby data ascending group data by data.Length into lengthGroup //길이로 단어를 그룹 지움 orderby lengthGroup.Key descending select (new { Length = lengthGroup.Key, Datas = lengthGroup });
foreach(var x in query) { Console.WriteLine("Words of length :" + x.Length);
foreach(string data in x.Datas) { Console.WriteLine(" " + data); } }
} } }
|
실행 결과
이처럼 data 배열에 저장되어 있는 문자들을 oreder by를 통하여 오름차순으로 정렬을 시켜주고, group by를 이용하여 data.Length 즉, 문자열의 길이로 단어들을 그룹화 시켜줍니다. 다음으로 그룹화 된 문자들을 길이대로 정렬 시켜줘서 조회를 해주면 위와 같은 실행 결과가 나오게 됩니다.
이로써, Linq를 이용하여 그룹화 및 정렬 하는 방법에 대해서 알아 보았습니다.
감사합니다.
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] Linq Join 구문 사용 예제 (0) | 2019.08.20 |
---|---|
[C#] 특정 경로 파일 삭제하는 방법 (날짜별 지우기) (2) | 2019.08.19 |
[C# 문법] Log4Net 사용하여 Log 남기기 (0) | 2019.08.14 |
[C#] 최대값, 최소값 구하는 방법 (0) | 2019.08.10 |
[C# 문법] Object[] 형식 -> String[] 형식으로 형변환(Casting) 하는 방법 (0) | 2019.08.07 |
이 글을 공유하기