2013-12-12 3 views
-2

Count from ICollection <T>은 이전 버전과의 호환성을 위해 여전히 사용 가능합니까?

내가 의문을 제기하고있어 이해하기 이전 상황, ICollection<T>를 구현하는 클래스에서 Count (속성) 및 Count() (방법)이 존재하는 이유, 설명 첫번째 질문에서 질문 "Why does .Count work without parentheses?"

를 참조하십시오. 그 질문은 answered satisfactorily이었습니다.

그러나 코멘트에 답변을 아래

는 또 다른 문제는 finoutlook에 의해 제기되었다

문제 속성 Count은 이전 버전과의 호환성을 위해 (LINQ 기술을 나중에 닷넷 버전에서) 아직 주위

?

답변

3

아니요, 컬렉션을 통해 반복 할 필요없이 직접 몇 개의 요소가 반환 될 수 있습니다.

Enumerable.Count()은 컬렉션에서 ICollection<T>을 구현하는 경우 컬렉션에서 한 번에 하나의 요소를 반복하는 대신 속성을 사용하므로 달리 수행해야 할 작업을 최적화 할 수 있습니다.

나에게는 분명히 유용한 속성 인 것 같습니다. 오늘날 LINQ를 염두에두고 프레임 워크를 만들었지 만 여전히 매우 비슷한 것이있을 것이라고 확신합니다. (필자는 컬렉션 인터페이스에 대해보고자하는 다양한 변화를 생각해 볼 수는 있지만 다른 문제이다.)

0

사실 (이전 버전과의 호환성을 위해 여전히 유효 함)이지만 내 관점에서는 이전 버전과의 호환성 때문에이 속성이 여전히 존재하지 않습니다.

대부분의 경우에 ICollection<T>을 구현하는 클래스를 사용하면 요소를 내부적으로 (클래스의 개인 또는 보호 된 범위에서) 짧은 방법으로 계산할 수 있습니다.

또한 컬렉션에는 얼마나 많은 요소가 있는지에 대한 정보가 있어야합니다. 내가 아는 한, 이것이이 건물의 주요 목적입니다.