2012-04-24 4 views
6

2 C# 선언 테이블이 있습니다.이 테이블은 프로그램을 만드는 동안 초기화됩니다.익명 형식의 LINQ에 가입하십시오.

이 UserID와 UserName에이 테이블 기반을 가입시키고 싶습니다.

내 코드는 내가 오류를

잘못된 익명 형식 멤버 선언자를 얻고이 코드에

from nSJL in UserList.AsEnumerable() 
join SJL in UserListOnline.AsEnumerable() 
on 
new { nSJL.Field<int>("UserID"), nSJL.Field<string>("UserName") } 
equals 
new { nSJL.Field<int>("UserID"), nSJL.Field<string>("UserName") } 
into sjList 

을 다음과 같이한다. 익명 형식 멤버는 멤버 할당, 단순한 이름 또는 멤버 액세스로 선언해야합니다.

어쨌든 익명 유형에 가입 하시겠습니까?

답변

13

당신은 익명 형식의 속성 이름을 지정해야합니다 나는 또한 너무 SJL보다는 nSJL를 사용하여 조인의 오른쪽을 변경 한

from nSJL in UserList.AsEnumerable() 
join SJL in UserListOnline.AsEnumerable() 
on 
new { UserID = nSJL.Field<int>("UserID"), 
     UserName = nSJL.Field<string>("UserName") } 
equals 
new { UserId = SJL.Field<int>("UserID"), 
     UserName = SJL.Field<string>("UserName") } 
into sjList 

주를, 그렇지 않으면 무효입니다한다. 비록 당신이 더 의미있는 이름을 사용한다면 코드의 명확성을 도울 것입니다 ...

+0

@ gdoron : 네, 이미 고정 :) –

5
from nSJL in UserList.AsEnumerable() 
join SJL in UserListOnline.AsEnumerable() 
on 
new{ UserID = nSJL.Field<int>("UserID"), UserName = nSJL.Field<string>("UserName") } 
equals 
new { UserID = nSJL.Field<int>("UserID"), UserName = nSJL.Field<string>("UserName") } into sjList 

익명 형식의 필드 이름을 선언하지 않았습니다.

+0

감사합니다 Jakub –

관련 문제