2011-11-16 6 views
1

내부 컬렉션 순서에 따라 LINQ 조인 작업의 결과를 정렬 할 수 있습니까? 나는 다음과 같은 LINQ는 사람의 하위 집합을 얻기 위해 가입 할 경우LINQ : 내부 컬렉션을 기반으로 조인 결과 정렬

var names = new[]{"John", "Mary", "David"}; 
var persons= new[]{ new Person{Name="John", Title"Prof"}, new Person{Name="Mary", Title="Accountant"}, new Person{Name="David", Title="Mechanic"}, new Person{Name="Peter", Title="Homeless"}} 

:

var taxPayers = 
       persons 
        .Join(names , p => p.Name, n => n, (p, n) => p) 
        .Select(f => new KeyValuePair<string, object>(f.Name, f.Title)); 

결과는 사람의 배열에 따라 정렬됩니다

내가 두 컬렉션을 말해봐.

LINQ를 사용하여 이름 순서에 따라 납세자를 주문할 수 있습니까? 아니면 LINQable 연산이 아닌가?

TIA.

답변

2

조인을 반대로하면됩니다. 이름을 사람과 합치는 대신 사람을 이름에 연결하십시오.

+0

응답 해 주셔서 감사합니다. 조인을 되 돌리는 것은 내가 필요로하는 사람의 집합 대신 이름의 집합을 반환한다. –

+2

@ e28Makaveli, 그렇다면 충분히 뒤집을 수 없습니다. 말하자면'(p, n) => p'를 그대로두면 실패한 것을 경험하게 될 것입니다. 그러나, 대신에 (n, p) => p가 당신의 이름 (n)이 첫 번째이고, 사람 (p)이 둘째이고, 두 번째를 원한다면, 그러면 괜찮을 것입니다. –

+0

@drharris, 답변 샘플을 작성하는 것이 유익합니다. 분명히 혼란을 낳았습니다. –

관련 문제