c\#제1 1 장 사용자 와 프로젝트 의 교차 연결 을 깊이 이해 하려 면 여러 from 자 구 를 사용 하여 교차 연결 과 합병 순 서 를 사용 합 니 다.

3620 단어 c#
 class CartesianJoin
    {
        static void Main()//    from                         
        {
            var query = from user in SampleData.AllUsers
                        from project in SampleData.AllProjects
                        select new { User = user, Project = project };
						//{Project: Skeety Media Player}
						//
//query {System.Linq.Enumerable.SelectManyIteratorf__AnonymousType4>}

            foreach (var pair in query)
			//pair { User = {User: Tim Trotter (Tester)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Tim Trotter (Tester)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Tim Trotter (Tester)}, Project = {Project: Skeety Office} }
			//{ User = {User: Tara Tutu (Tester)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Tara Tutu (Tester)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Tara Tutu (Tester)}, Project = {Project: Skeety Office} }
			//{ User = {User: Deborah Denton (Developer)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Deborah Denton (Developer)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Deborah Denton (Developer)}, Project = {Project: Skeety Office} }
			//{ User = {User: Darren Dahlia (Developer)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Darren Dahlia (Developer)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Darren Dahlia (Developer)}, Project = {Project: Skeety Office} }
			//{ User = {User: Mary Malcop (Manager)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Mary Malcop (Manager)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Mary Malcop (Manager)}, Project = {Project: Skeety Office} }
			//{ User = {User: Colin Carton (Customer)}, Project = {Project: Skeety Media Player} }
			//{ User = {User: Colin Carton (Customer)}, Project = {Project: Skeety Talk} }
			//{ User = {User: Colin Carton (Customer)}, Project = {Project: Skeety Office} }
		
            {
                Console.WriteLine("{0}/{1}",
                                  pair.User.Name,
                                  pair.Project.Name);
            }
        }
    }

  같은 연결-왼쪽 시퀀스 의 요소 와 오른쪽 시퀀스 가 일치 해 야 합 니 다.교차 연결 은 시퀀스 간 에 일치 하 는 동작 을 수행 하지 않 습 니 다.결 과 는 가능 한 모든 요 소 를 포함 합 니 다.그것들 은 간단하게 두 개(또는 여러 개)from 자 구 를 사용 하여 실현 할 수 있다.우 리 는 두 개의 from 자구 의 상황 만 을 고려 합 니 다.여러 개의 from 자구 와 관련 될 때 사실은 앞의 두 개의 from 자구 에서 교차 연결 을 실행 한 것 이 라 고 볼 수 있 습 니 다.이 어 결과 서열 과 다음 from 자구 를 다시 교차 연결 하여 유추 할 수 있 습 니 다.모든 추가 from 자 구 는 투명 식별 자 를 통 해 자신의 범위 변 수 를 추가 합 니 다.  간단 한 교차 연결 은 하나의 서열 을 만 들 었 는데 그 중에서 모든 데이터 항목 은 한 사용자 와 한 항목 으로 구성 된다.  SQL 에 익숙 하 다 면 다 중 표 조회 의 피리 카드 를 지정 한 것 과 같 습 니 다.실제로 대부분의 경우 교차 연결 의 용법 이다.그러나 필요 할 때 더 강 한 것 을 발견 할 수 있 습 니 다.특정한 시간 에 사용 하 는 오른쪽 서열 은 왼쪽 서열 의'현재'값 에 의존 합 니 다.즉,왼쪽 서열 에 있 는 모든 요 소 는 오른쪽 에 있 는 하나의 서열 을 생 성 하 는 데 사용 되 고 왼쪽 에 있 는 이 요 소 는 오른쪽 에 새로 생 성 된 서열 의 모든 요소 와 한 쌍 으로 구성 된다.이것 은 통상 적 인 의미 에서 의 교차 연결 이 아니 라 여러 개 를
서열 이 효율적으로 하나의 서열 로 통합 되다.우리 가 진정한 교차 연결 을 사용 하 든 말 든 검색 식 의 번역 은 같 습 니 다.
출력 팀 트 롯 터/스 케 이 티 미디어 플레이어 팀 트 롯 터/스 케 이 티 토 크 팀 트 롯 터/스 케 이 티 사무실 타 라 투 투/스 케 이 티 미디어 플레이어 타 라 투/스 케 이 티 토 크 타 라 투 투/스 케 이 티 사무실 데보라 덴 튼/스 케 이 티 토 크 데 보라 덴 튼/스 케 이 티 토 크 데 보라 덴 튼/스 케 이 티 사무실 대 런 달 리 아/스 케 이 티 미디어 플레이어 대 런 달 리 아/스 케 이 티 토 크 대 런 달 리 아/스 케 이 티 토 크 대 런 달 리 아/스 케 이 티 사무실 메리 Malcop/스 케 이 티 Media PlayerMary Malcop/Skeety TalkMary Malcop/Skeety OfficeColin Carton/Skeety Media PlayerColin Carton/Skeety TalkColin Carton/Skeety Office

좋은 웹페이지 즐겨찾기