3

私は次の結合をしようとします:

var collection = from t1 in dt1.AsEnumerable()
                 join t2 in dt2.AsEnumerable()
                 on  new { 
                     t1.["main_code"], 
                     t1["year"]} 
                     equals new { 
                         t2["dep_code"], 
                         t2["dep_year"] }
                         select new { 
                             emp_name = t1["name"], 
                             bonus_desc = t1["bonus_desc"],
                             dep_name = t2["dep_name"] };

しかし、私は次のビルドエラーに直面しています!!

無効な匿名型メンバー宣言子

4

3 に答える 3

4

の匿名型の名前プロパティjoin:

var collection = from t1 in dt1.AsEnumerable()
                 join t2 in dt2.AsEnumerable()
                 on  new { PropertyA= t1["main_code"], PropertyB=t1["year"]} equals new { PropertyA=t2["dep_code"], PropertyB=t2["dep_year"] }
                 select new { emp_name = t1["name"], bonus_desc = t1["bonus_desc"],dep_name = t2["dep_name"] };
于 2013-09-30T11:41:01.240 に答える
4

プロパティに明示的に名前を付ける必要があります。次に例を示します。

var collection = 
    from t1 in dt1.AsEnumerable()
    join t2 in dt2.AsEnumerable()
    on new { code = t1["main_code"], year = t1["year"] } equals 
       new { code = t2["dep_code"], year = t2["dep_year"] }
    select new { emp_name = t1["name"], bonus_desc = t1["bonus_desc"] /* ... */};
于 2013-09-30T11:41:52.990 に答える
3

使用する:

var collection = from t1 in dt1.AsEnumerable()
                 join t2 in dt2.AsEnumerable()
                 on  new { field1 = t1.["main_code"], field2 = t1["year"]} equals new { field1 = t2["dep_code"], field2 = t2["dep_year"] }
                 select new { emp_name = t1["name"], bonus_desc = t1["bonus_desc"],dep_name = t2["dep_name"] };
于 2013-09-30T11:42:01.573 に答える