Join anonymous type in LINQ

10,870

Solution 1

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...

Solution 2

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.

Share:
10,870
abc cba
Author by

abc cba

Updated on June 14, 2022

Comments

  • abc cba
    abc cba almost 2 years

    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?