반응형
- Single() / SingleOrDefault()
- Single()
- 두가지 오버로드된 버전이 존재한다 [list.Single, list.Single(Fnc<TSouce, bool> predicate)]
- 첫번째 Single()은 단순히 데이터 집합에서 유일한 단일 요소를 반환한다.
- 두번째 Single()은 Func 대리자를 인자로 가지며 데이터 집합에서 특정 조건을 가지는 요소가 유일한 경우 해당 요소를 반환하다.
- 하지만 데이터집합에 어떠한 값도 없거나 둘이상의 값이 존재하거나 특정 조건을 가지는 요소가 둘이상일때 에러가 발생한다.
- SingleOrDefault()
- 해당 메서드는 Single을 사용했을때 발생하는 에러를 보안하여 Default 값을 반환한다.
- Single과 동일하게 두가지 오버로드된 버전이 존재한다.
- Single()
- First() / FirstOrDefault()
- First()
- 데이터 집합에서의 첫번째 요소를 반환한다. 하지만 어떠한 요소도 없는경우에 에러가 발생한다.
- FirstOrDefault()
- First()와 동일하게 데이터 집합의 첫번째 요소를 반환하며 어떠한 요소도 없는경우에는 Default값을 반환한다.
- First()
- 원하는 한개의 요소 가져오기
- 당연히 단순히 한개의 요소를 가져오는것으로 해결되지 않는 경우가 많기 때문에 First()를 실행하기전 첫번째 위치로 옮기기 위해서 정렬을 수행하는 것도 하나의 방법이다.
- 특정 위치의 요소 가져오기
- Skip()과 First()를 함께 사용하여 원하는 요소를 가져올 수 있다.
- 하지만 요소의 총개수가 3개 이상이어야 한다.
var answer = (from p in Forwards
where p.GoalsSored > 0
orderby p.GoalsSored
select p).Skip(2).First(); //세번째 요소를 반환한다.
반응형
'C# > Effective C#' 카테고리의 다른 글
[Effectvie C#] Item 45 메서드가 실패했음을 알리기 위해서 예외를 이용하라 (0) | 2023.05.23 |
---|---|
[Effective C#] Item 44 바인딩 된 변수는 수정하지 말라 (0) | 2023.05.23 |
[Effective C#] Item 42 IEumerable<T> 데이터 소스와 IQueryable 데이터 소스를 구분하라 (0) | 2023.05.11 |
[Effective C#] Item 40 지연 수행과 즉시 수행을 구분하라 (0) | 2023.05.02 |
[Effective C# Item 37] 쿼리를 사용할 때는 즉시 평가보다 지연 평가가 낫다 (0) | 2023.05.02 |