Notice
Recent Posts
Recent Comments
Link
bdfgdfg
Linq - Group by 본문
반응형
Linq는 마치 SQL문법처럼 사용가능한 문법. 코드를 여러 단계에 걸쳐서 작성해야할 것을 한줄로 표현가능한 등 굉장히 편리한 이점이 있다.
최근에 List 컬렉션의 요소에 중복된 요소가 있고. 해당 각 중복된 요소의 수를 구해 중복된 수가 높은 요소를 N개만큼 뽑아와야 하는일이 존재했다. 물론 좀 더 처리해야 할 로직은 존재했지만 중요한건 이것이었음.
여기서 Groupby 문법(간단하게 그룹화,중복제거라고 보면된다)을 쓰면 깔끔하게 처리가 가능.
class Program
{
static void Main(string[] args)
{
var lstOverlappedElementInList = new List<Int32>() { 1, 1, 3, 3, 3, 5, 9, 9, 15, 15, 15, 15, 4, 4, 50, 50, 50, 50 };
var ieGroupBy = lstOverlappedElementInList.GroupBy(r => r);
var lstResult = ieGroupBy.Select(r => new { ElementID = r.Key, ElementCount = r.Count() }).OrderByDescending( r => r.ElementCount ).Select( r => r.ElementID ).ToList();
lstResult.ForEach(r => Console.Write($"{r} "));
}
}
결과
반응형
'게임프로그래밍 > C#' 카테고리의 다른 글
Interlocked (0) | 2022.12.13 |
---|---|
[C#] 예외처리(try-catch) (0) | 2022.04.22 |
[C#] 일반화(제네릭) 프로그래밍 (0) | 2022.04.21 |
[C#] 인덱서(Indexer) (0) | 2022.04.21 |
[C#] 프로퍼티(갓) (0) | 2022.04.19 |
Comments