7

私は2つのc#宣言テーブルを持っています、それはプログラムの作成中に列を初期化します。

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

このコードでは、エラーが発生しています

匿名タイプのメンバー宣言子が無効です。匿名型のメンバーは、メンバーの割り当て、単純な名前、またはメンバーアクセスを使用して宣言する必要があります。

とにかく匿名タイプに参加しますか?

4

2 に答える 2

13

匿名タイプのプロパティの名前を指定する必要があります。

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

結合の右側も使用するように変更したことに注意してくださいSJLnSJLそうしないと無効になります。ただし、もっと意味のある名前を使用すると、コードがわかりやすくなります...

于 2012-04-24T08:09:10.100 に答える
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

匿名タイプのフィールド名を宣言していませんでした。

于 2012-04-24T08:09:09.783 に答える