C#/LINQ45 [C#]LINQ 단일 값 가져오기 - Single, SingleOrDefault 메서드 Linq 단일 값 가져오기 C#의 Linq는 단일 값을 가져올 수 있는 기능을 제공합니다. - Single() 메서드 - SingleOrDefault() 메서드 이번 포스팅은 두 가지 함수 사용 방법을 소개합니다. Single 메서드 C#의 Linq에서 제공하는 Single() 메서드는 데이터 집합에서 유일한 단일 요소를 반환하거나 특정 조건을 만족하는 단일 요소를 반환합니다. Single() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static TSource Single(this IEnumerable source); public static TSource Single( this IEnumerable source, Func predicate); 첫 번째 Single() 메서드는 단순히.. C#/LINQ 2022. 8. 7. [C#]LINQ 마지막 요소 가져오기 - Last, LastOrDefault 메서드 마지막 요소 가져오기 C#의 Linq는 데이터 집합에서 마지막 요소를 가져올 수 있는 기능을 제공합니다. - Last() 메서드 - LastOrDefault() 메서드 이번 포스팅은 두 가지 함수 사용 방법을 소개합니다. Last 메서드 C#의 Linq에서 제공하는 Last() 메서드는 데이터 집합에서 마지막 요소를 반환합니다. Last() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static TSource Last( this IEnumerable source); public static TSource Last( this IEnumerable source, Func predicate); 첫 번째 Last() 메서드는 단순히 데이터 집합의 마지막 요소를 반환합니다. 두 번째 Last().. C#/LINQ 2022. 8. 7. [C#]LINQ 첫 번째 요소 가져오기 - First, FirstOrDefault 메서드 첫 번째 요소 가져오기 C#의 Linq는 데이터 집합에서 첫 번째 요소를 가져올 수 있는 기능을 제공합니다. - First() 메서드 - FirstOrDefault() 메서드 이번 포스팅은 두 가지 함수 사용 방법을 소개합니다. First 메서드 C#의 Linq에서 제공하는 First() 메서드는 데이터 집합에서 첫 번째 요소를 반환합니다. First() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static TSource First( this IEnumerable source); public static TSource First( this IEnumerable source, Func predicate); 첫 번째 First() 메서드는 단순히 데이터 집합의 첫 번째 요소를 반환합니다... C#/LINQ 2022. 8. 7. [C#]LINQ 특정 인덱스의 값 가져오기 - ElementAt, ElementAtOrDefault 메서드 특정 인덱스의 값 가져오기 C#의 Linq는 데이터 집합에서 특정 인덱스의 값을 가져오는 기능을 제공합니다. - ElementAt() 메서드 - ElementAtOrDefault() 메서드 이번 포스팅은 두 가지 함수 사용 방법을 소개합니다. ElementAt 메서드 C#의 Linq에서 제공하는 ElementAt() 메서드는 데이터 집합에서 특정 인덱스의 값을 반환합니다. public static TSource ElementAt(this IEnumerable source, int index); ElementAt() 메서드는 System.Linq의 Enumerable 클래스에 정의되어 있으며, IEnumerable 인터페이스의 확장 메서드입니다. ElementAt() 메서드를 호출하는 데이터 집합이 nul.. C#/LINQ 2022. 8. 7. [C#]LINQ 크로스 조인(Cross Join) 크로스 조인(Cross Join) 크로스 조인은 첫 번째 데이터 집합의 각 요소를 두 번째 데이터 집합의 각 요소와 결합하는데 사용됩니다. 크로스 조인된 결과는 데카르트 곱을 반환하므로 카티전 조인이라고 말합니다. 크로스 조인은 Join 조건이 존재하지 않습니다. 첫 번째 데이터 집합의 요소가 3개, 두 번째 데이터 집합의 요소가 2개 존재한다면 크로스 조인의 결과는 3 x 2로 총 6개의 요소를 가지는 데이터 집합이 반환됩니다. 예를 들어, 두 개의 데이터 집합(Employee, Department)이 존재합니다. 크로스 조인 결과로 총 6개의 요소를 가지는 데이터 집합이 반환됩니다. 샘플 데이터 이번 포스팅에서는 사용자 정의 클래스인 Employee, Department 타입의 데이터 집합을 사용합니.. C#/LINQ 2022. 8. 7. [C#]LINQ 왼쪽 조인(Left Join) 왼쪽 조인이란? 왼쪽 조인(Left Join) 또는 왼쪽 외부 조인(Left Outer Join)은 두 번째 데이터 집합에 일치하는 데이터가 있는지 관계없이 첫 번째 데이터 집합의 모든 데이터가 반환되는 Join입니다. 예를 들어, 두 개의 데이터 집합(Employee, Department)이 존재합니다. 첫 번째 데이터 집합이 Employee인 경우 "나랑두" 사원의 부서 코드는 Department에 존재하지 않습니다. 하지만, 왼쪽 조인은 두 번째 데이터 집합인 Department에 일치하는 부서 코드가 없더라도 첫 번째 데이터 집합인 Employee의 모든 데이터가 반환되어야 합니다. 첫 번째 데이터 집합이 Department인 경우 이번에는 반대로 첫 번째 데이터 집합을 Department로 설정.. C#/LINQ 2022. 8. 6. [C#]LINQ 그룹 조인 - GroupJoin 메서드 그룹 조인이란? 그룹 조인이랑 두 개 이상의 데이터 집합에서 일치하는 키를 기준으로 그룹화된 데이터를 반환합니다. C#의 Linq에서 키를 기준으로 그룹화된 데이터를 구하기 위해 GroupJoin() 메서드를 사용할 수 있습니다. GroupJoin() 메서드는 Join() 메서드와 GroupBy() 메서드의 기능이 하나로 합쳐진 메서드입니다. 예를 들어, 두 개의 데이터 집합(Employee, Department)이 존재합니다. 데이터 집합 Employee에는 부서 코드가 1000인 사원이 2명, 2000인 사원이 4명, 3000인 사원이 1명입니다. 하지만, 데이터 집합 Department의 부서 코드에는 3000인 데이터가 없으므로 Employee와 Department를 그룹 조인하면, 다음과 같은 .. C#/LINQ 2022. 8. 6. [C#]LINQ 내부 조인(Inner Join) - Join 메서드 내부 조인이란? 내부 조인은 두 개 이상의 데이터 집합에서 일치하는 데이터만 반환합니다. 만약, 일치하는 데이터가 없는 경우 반환되는 데이터는 존재하지 않습니다. 즉, 내부 조인은 두 개 이상의 데이터 집합에서 일치하는 결과를 추출하고 싶은 경우 사용됩니다. 다음 예시를 통해 알아봅시다. 두 개의 데이터 집합(Employee, Department)이 존재합니다. Employee 데이터 집합의 부서 코드가 Department 데이터 집합의 부서 코드에 존재하는 데이터를 추출하려고 합니다. 부서 코드 2000은 Department 데이터 집합의 부서 코드에 존재하지 않으므로 나랑두 사원은 결과에 포함되지 않습니다. Join 메서드 C#의 Linq에서 제공하는 Join() 메서드를 사용하여 두 개의 데이터 집.. C#/LINQ 2022. 8. 6. [C#]LINQ 데이터 그룹화 - GroupBy 메서드 GroupBy 메서드 C# Linq에서 제공되는 GroupBy() 메서드는 SQL에서 사용할 수 있는 Group By 절과 동일한 작업을 수행합니다. 즉, GroupBy() 메서드에 전달된 키(또는 프로퍼티)를 기준으로 데이터를 그룹화합니다. 주로 다음 예시처럼 합계, 최솟값, 최댓값, 평균, 개수를 구하기 위해 데이터를 그룹화합니다. - 특정 연도의 매출 - 부서별 인원수 - 각 반별로 평균 점수 계산 예제에 사용되는 클래스 이번 포스팅에서 사용되는 Student 클래스입니다. public class Student { public string ID { get; set; } // 학생을 식별하는 키 public string Name { get; set; } // 학생의 이름 public int Grade.. C#/LINQ 2022. 8. 4. [C#]LINQ 누적기 함수 - Aggregate 메서드 Aggregate 메서드 C#의 Linq는 집계 함수를 제공합니다. 그중 Aggregate() 메서드는 누적 연산을 수행합니다. 메서드 오버로드 System.Linq의 Enumerable 클래스에 정의된 Aggregate() 메서드를 확인할 수 있으며, 세 가지 오버로드된 버전이 존재합니다. public static TSource Aggregate( this IEnumerable source, Func func); public static TAccumulate Aggregate( this IEnumerable source, TAccumulate seed, Func func); public static TResult Aggregate( this IEnumerable source, TAccumulate se.. C#/LINQ 2022. 8. 3. [C#]LINQ 데이터 개수 구하기 - Count 메서드 Count 메서드 C#의 LINQ에서 제공되는 Count() 메서드는 컬렉션과 같은 데이터 집합의 요소 개수 또는 특정 조건을 만족하는 요소 개수를 구하기 위해 사용됩니다. 메서드 오버로드 System.Linq 네임스페이스의 Enumerable 클래스에 정의된 Count() 메서드는 오버로드된 두 가지 버전의 메서드가 존재합니다. public static int Count( this IEnumerable source, Func predicate); public static int Count(this IEnumerable source); Count() 메서드 구문을 통해 IEnumerable 인터페이스의 확장 메서드라는 것을 알 수 있으며, 항상 int 타입의 값을 반환합니다. 그리고 두 가지 버전의 차이.. C#/LINQ 2022. 7. 31. [C#]LINQ 평균 구하기 - Average 메서드 Average 메서드 C#의 LINQ에서는 집계 함수를 제공합니다. 그중 Average() 메서드는 컬렉션과 같은 집합에서 숫자 타입인 값의 평균을 계산하기 위해 사용됩니다. 메서드 오버로드 System.Linq의 Enumerable 클래스를 살펴보면 Average() 메서드가 오버로드된 다양한 버전의 메서드를 확인할 수 있습니다. Average() 메서드는 숫자 타입인 값의 평균을 계산하므로 nullable 또는 double, float, decmial 타입의 값을 반환할 수 있습니다. 그리고 Func 대리자를 매개변수로 가지는 메서드와 가지지 않는 메서드가 존재합니다. 이번 포스팅에서 Func 대리자를 매개변수로 가지는 메서드와 가지지 않는 메서드 사용 방법을 예제를 통해 설명하며, Func 대리자에.. C#/LINQ 2022. 7. 31. 이전 1 2 3 4 다음