CollectionBase
에서 상속받은 클래스를 만들고 싶지만 LINQ 확장을 지원하지 않는 것 같습니다!CollectionBase 클래스가 계속 지원됩니까?
아직 지원 되나요? 아니면 대체 솔루션이 있습니까?
CollectionBase
에서 상속받은 클래스를 만들고 싶지만 LINQ 확장을 지원하지 않는 것 같습니다!CollectionBase 클래스가 계속 지원됩니까?
아직 지원 되나요? 아니면 대체 솔루션이 있습니까?
여전히 을 지원하며이지만 지원되지 않습니다. 대신 System.Collections.Generic
또는 System.Collections.ObjectModel
네임 스페이스에 정의 된 모음을 사용하는 것이 좋습니다.
일반 컬렉션 중 하나에서 상속하여 사용자 지정 강력한 형식의 컬렉션을 만들 수도 있습니다. 그리고 그들은 이미 IEnumerable<T>
을 구현하고 있기 때문에 LINQ를 전적으로 지원할 것입니다.
List<T>
또는 Collection<T>
중 하나를 선택하는 것이 좋습니다.
가능하면 CollectionBase
, ArrayList
및 HashTable
과 같은 비 제너릭 컬렉션을 피하십시오. 그 (것)들을 사용하기에 성과 처벌이 있고, 더 새로운 버전의기구에서 소개 된 일반적인 버전에 몇몇 이점을 (만약에 있으면!) 제안합니다.
[qtg] (https://stackoverflow.com/users/7368376/qtg)의 설명이 [ 답변] (https://stackoverflow.com/a/47669778/5292302) * "공식 MSDN에서 더 이상 사용되지 않는 링크를 제공해 주실 수 있습니까?"* –
Linq extensions are written for IEnumerable<T>
(일반) 및 CollectionBase (비 - 일반)은 상속하지 않습니다. 그래서 Linq를 사용할 수 없습니다.
대신 System.Collections.ObjectModel.Collection<T>
을 사용하십시오.
단순히 IEnumerable을 구현하지 않는 이유는 무엇입니까? –
Tejs
@Tejs : 일부 유효성 검사 기능이 있기 때문에이를 캡슐화합니다. – Homam
CollectionBase는 구식, 중고 제네릭처럼 보입니다. 왜 그것을 사용하고 싶습니까? –