"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > LINQ는 어떻게 지정된 기본 유형의 모든 파생 유형을 효율적으로 찾을 수 있습니까?

LINQ는 어떻게 지정된 기본 유형의 모든 파생 유형을 효율적으로 찾을 수 있습니까?

2025-03-23에 게시되었습니다
검색:395

How Can LINQ Efficiently Find All Derived Types of a Specified Base Type?

그러나 LINQ (Language Integrated Query)를 사용하여보다 효율적이고 우아한 솔루션이 존재합니다. 다음 코드 스 니펫은이 작업을 수행하는 간단하고 성능있는 방법을 제공합니다.

var listofderivedTypes = ( AppDomain.currentDomain.getAssemblies ()의 DomainAssembly에서 domainassembly.getTypes () 유형에서 여기서 typeof (basetypename) .isassignablefrom (type) select) .toarray ();

대체 유창한 구문 :

var listOfDerivedTypes = (
                from domainAssembly in AppDomain.CurrentDomain.GetAssemblies()
                from type in domainAssembly.GetTypes()
                where typeof(BaseTypeName).IsAssignableFrom(type)
                select type).ToArray();

Linq 표현식은 더욱 유창한 스타일로 작성 될 수 있습니다. .SelectMany (domainAssembly => domainAssembly.getTypes ()) .where (type => typeof (basetypename) .isassignablefrom (type)) .toArray ();

Customizations :

var listOfDerivedTypes = (
                from domainAssembly in AppDomain.CurrentDomain.GetAssemblies()
                from type in domainAssembly.GetTypes()
                where typeof(BaseTypeName).IsAssignableFrom(type)
                select type).ToArray();

  • 는 공개적으로 보이는 유형을 검색하려면 domainasembly.getexportedTypes () 대신 사용합니다. DomainAssembly.getTypes (). type.isabstract where 절. 지침은 "세부 사항"섹션의 링크 된 리소스를 참조하십시오.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3