선택 쿼리에서 "새"를 "새"를 사용하고 사용하지 않을의 차이 무엇 :다음과 같이 나는이 개 질문이
Select(a => a.IsAdmin)
Select(x => new {x.IsAdmin})
... 그리고 두 가지 질문이 있습니다.
- 둘 사이의 차이점은 무엇입니까?
- 언제 사용해야하며 언제 'new'키워드를 사용해야합니까?
선택 쿼리에서 "새"를 "새"를 사용하고 사용하지 않을의 차이 무엇 :다음과 같이 나는이 개 질문이
Select(a => a.IsAdmin)
Select(x => new {x.IsAdmin})
... 그리고 두 가지 질문이 있습니다.
문
Select(a => a.IsAdmin)
는 한편
문
Select(x => new {x.IsAdmin})
(속성 IsAdmin가 bool
타입 인 것으로 가정) IEnumerable<bool>
가를 반환 반환 IEnumerable<*anonymous type*>
개체의 속성이인 익명 형식이됩니다. 타입 bool
의후자는 각 항목에 대해 이렇게 동등한 효과적인 것을 고려해
가IsAdmin
의 대상 속성 이름
var output = new { IsAdmin = input.IsAdmin };
이므로 :
var output = new { input.IsAdmin };
동의어로서 지정되지 않은 경우 소스에서 유추됩니다. 각 항목 items
의 요소의 IsAdmin
의 값입니다 - 그래서 ...
items.Select(a => a.IsAdmin)
이것은 bool
의 열거를 돌려줍니다.
샘플 반환 값 : [True, False, True, True, False]
.
items.Select(a => new {a.IsAdmin})
이 각 개체 값 items
의 항목의 대응 IsAdmin
의 속성을 IsAdmin
인 특성을 갖는다 익명 object,의 열거를 반환한다.
샘플 반환 값 : [{ IsAdmin: True }, { IsAdmin: False }, ...]
.
귀하의 재량에 따라 사용할 수 있습니다. 일반적으로 후자는 단일 값이 아닌 각 항목에 대해 여러 속성을 반환하려는 경우에 사용합니다.
는 단순히 단순히 기본 데이터 형식의 목록을 반환하는 첫 번째 문에서
, 생각합니다. 그것은 int, bool 일 수 있습니다. string은 IsAdmin 유형에 따라 다릅니다.
그리고 두 번째 것은 IsAdmin 속성을 사용하여이 컬렉션을 반환하는 익명 형식의 개체를 만듭니다.
첫 번째는 평가할 개체를 기반으로 한'IsAdmin'의 현재 값을 반환합니다. 두 번째는'IsAdmin'의 새로운 객체를 인스턴스화하고 기본값을 반환합니다. –