2011-04-18 2 views
8

CollectionBase에서 상속받은 클래스를 만들고 싶지만 LINQ 확장을 지원하지 않는 것 같습니다!CollectionBase 클래스가 계속 지원됩니까?

아직 지원 되나요? 아니면 대체 솔루션이 있습니까?

+2

단순히 IEnumerable 을 구현하지 않는 이유는 무엇입니까? – Tejs

+0

@Tejs : 일부 유효성 검사 기능이 있기 때문에이를 캡슐화합니다. – Homam

+1

CollectionBase는 구식, 중고 제네릭처럼 보입니다. 왜 그것을 사용하고 싶습니까? –

답변

23

여전히 을 지원하며이지만 지원되지 않습니다. 대신 System.Collections.Generic 또는 System.Collections.ObjectModel 네임 스페이스에 정의 된 모음을 사용하는 것이 좋습니다.

일반 컬렉션 중 하나에서 상속하여 사용자 지정 강력한 형식의 컬렉션을 만들 수도 있습니다. 그리고 그들은 이미 IEnumerable<T>을 구현하고 있기 때문에 LINQ를 전적으로 지원할 것입니다.
List<T> 또는 Collection<T> 중 하나를 선택하는 것이 좋습니다.

가능하면 CollectionBase, ArrayListHashTable과 같은 비 제너릭 컬렉션을 피하십시오. 그 (것)들을 사용하기에 성과 처벌이 있고, 더 새로운 버전의기구에서 소개 된 일반적인 버전에 몇몇 이점을 (만약에 있으면!) 제안합니다.

+1

[qtg] (https://stackoverflow.com/users/7368376/qtg)의 설명이 [ 답변] (https://stackoverflow.com/a/47669778/5292302) * "공식 MSDN에서 더 이상 사용되지 않는 링크를 제공해 주실 수 있습니까?"* –

관련 문제