7

i do have 2 c# declaration table , it column initialise during the creation of the program.

i wanted to join this table base on its UserID and UserName.

My Code is like following

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

in this code i am getting the error

Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

Anyway to join anonymous type?

abatishchev
  • 98,240
  • 88
  • 296
  • 433
abc cba
  • 2,563
  • 11
  • 29
  • 50

2 Answers2

13

You need to specify the names for the anonymous type properties:

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

Note that I've also changed the right hand side of the join to use SJL rather than nSJL too, as otherwise it's invalid. It would help your code's clarity if you'd use rather more meaningful names though...

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
6
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

You weren't declaring the field names for your anonymous type.

Jakub Konecki
  • 45,581
  • 7
  • 87
  • 126