본문 바로가기

LINQ

[C#] LINQ 사용방법 - 조인 작업 Join, GroupJoin 조인 작업 Join Operations 조인은 데이터베이스에 등장하는 개념입니다. 조인 작업은 집합 간에 데이터를 연결합니다. 조인 작업은 클래스 간에 참조 관계가 없더라도 데이터를 연결할 수 있습니다. 이해하기 힘든 개념이므로 공식문서를 읽으면서 익혀주시길 바랍니다. 여기서는 조인 작업이 일반 코드보다 간결하다는 점만 보여드리도록 하겠습니다. 예를 들어, 아래와 같이 정의되어 있을 때 Customer 클래스에 City 속성이 있지만 City 클래스에 Customer 와 관련된 속성이 없으므로 모든 도시에 거주하는 모든 고객의 목록을 구하려면 아래와 같이 복잡한 메서드를 작성해야 합니다. class Customer { public City City { get; set; } } class City { pu..
[C#] LINQ 사용방법 - 시퀀스 작업 SequenceEqual, Concat, Zip 시퀀스 작업 Sequence operations 시퀀스 작업에 포함된 메서드는 SequenceEqual, Concat, Zip 입니다. 시퀀스 작업 메서드는 집합 전체를 대상으로 작업합니다. 두 집합의 모든 요소가 같은 순서대로 있는지 비교하기 var wordsA = new string[] { "cherry", "apple", "blueberry" }; var wordsB = new string[] { "cherry", "apple", "blueberry" }; bool match = wordsA.SequenceEqual(wordsB); // match = true var wordsA = new string[] { "cherry", "apple", "blueberry" }; // 순서를 변경하면 결과가 ..
[C#] LINQ 사용방법 - 집계 작업 Aggregate 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Aggregate Enumerable.Aggregate 메서드는 영어를 모국어로 사용하지 않는 개발자에겐 직관적으로 와닿지 않는 메서드입니다. 영단어 Aggregate는 합계, 총액 이란 뜻으로 직역되지만, 언어적 뉘앙스는 작은 단위가 누적되어 합쳐져 하나를 이루는 느낌입니다. 따라서 Enumerable.Aggregate 메서드는 Enumerable.Sum 메서드와는 다르게 사용됩니다. 기본적인 사용방법 double[] doubles = { 1.7, 2.3, 1.9, 4...
[C#] LINQ 사용방법 - 집계 작업 Average 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Average 집합 내에서 평균값 계산하기 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; double averageNum = numbers.Average(); // averageNum = 4.5 집합 내 원소를 활용하여 평균값 계산하기 string[] words = { "cherry", "apple", "blueberry" }; double averageLength = words.Average(w => w.Length); // a..
[C#] LINQ 사용방법 - 집계 작업 Max 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Max 집합 내에 최댓값 찾기 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; int maxNum = numbers.Max(); // maxNum = 9 집합 내 원소를 사용하여 최댓값 찾기 string[] words = { "cherry", "apple", "blueberry" }; int longestLength = words.Max(w => w.Length); // longestLength = 9 그룹 내에서 최댓값 찾기 Li..
[C#] LINQ 사용방법 - 집계 작업 Min 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Min 집합 내 최솟값 찾기 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; int minNum = numbers.Min(); // minNum = 0; 집합 내 원소를 변형하여 최솟값 찾기 string[] words = { "cherry", "apple", "blueberry" }; int shortestWord = words.Min(w => w.Length); // shortestWord = 5 그룹 별로 최솟값 찾기 List ..
[C#] LINQ 사용방법 - 집계 작업 Sum 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Sum 집합 내 모든 원소 더하기 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; double numSum = numbers.Sum(); // numSum = 45 집합 내 원소를 활용하여 더하기 string[] words = { "cherry", "apple", "blueberry" }; double totalChars = words.Sum(w => w.Length); // totalChars = 20 words 배열의 strin..
[C#] LINQ 사용방법 - 집계 작업 Count 집계 작업 Aggregators 집계 작업은 집합 모든 요소를 계산하여 하나의 값으로 반환하는 작업입니다. 집계 작업에 해당하는 LINQ 메서드로는 Count, Sum, Min, Max, Average, Aggregate 가 있습니다. Count 집합 내 요소 개수 세기 int[] factorsOf300 = { 2, 2, 3, 5, 5 }; int uniqueFactors = factorsOf300.Distinct().Count(); // uniqueFactors = 3 Distinct 메서드로 중복되는 값인 2와 5를 하나씩 제거한 뒤, 개수를 셉니다. 집합 내 조건에 맞는 요소 개수 세기 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; int oddNumber..