linq -outer OUTER 연결
>> 질문 :
두 목록의 모든 레코드가 다른 목록에 해당 일치 항목이 없더라도 공개 키 필드를 기반으로 두 객체간에 전체 연결을 수행하는 방법은 무엇입니까?
답변 :
1. 외부 전체에 연결된 사용자 정의 확장 방법
LINQ에서 외부 연결을 달성하려면 아래와 같이 사용자 정의 확장 방법을 정의 할 수 있습니다.
2. 구현
제공된 예제에는 두 개의 목록이 있습니다. 외부 연결을 실행하려면 다음 코드를 사용할 수 있습니다.
3. 설명
이 코드는 왼쪽 외부 연결을 사용하며
의 각 레코드는 일치하는 항목을 찾을 수없는 첫 번째 일치 레코드에 연결됩니다. 성명서는 매칭 레코드의 임시 컬렉션을 생성하여 를 적용하여 불완전한 레코드가 포함되어 있는지 확인할 수 있습니다. 이것은 실제로 왼쪽 외부 연결을 완전히 이해하지 못합니다. 외부 연결을 달성하려면 위의 사용자 정의
확장 방법을 사용해야합니다.
4. 출력을 기대하는
외부 연결의 예상 출력은 다음과 같습니다.
5. 정의 된 기본 값
확장 메소드가 제공하면 불만족스러운 레코드의 기본값을 지정할 수 있습니다. 이 예에서는 불만족스러운 이름에 대해 를 지정하고 비 일치 ID에 대한 네거티브 정수를 지정합니다.
6. 성능 예방 조치
전체 외부 연결의 실행 시간은 O (n m)이며, 여기서 n과 m은 두 입력 목록의 길이입니다. 이는 작동이 O (n) 시간이 필요하고 후속 작업에는 O (N M) 시간이 필요하기 때문입니다.
7. LINQ 구현
전체 외부 연결 의이 구현은 현재 LINQ 표준의 일부가 아니지만 향후 버전에 포함하는 것이 좋습니다. 표준 LINQ는 외부 연결을 직접 지원하지 않으며이를 달성하기 위해 사용자 정의해야합니다.
위 내용은 LINQ에서 전체 외부 조인을 수행하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!