2011-06-24 7 views
1

LINQを使用して2つのデータソースを結合するときに問題があります。すべての行と条件をグループとして返​​す2つのデータソースを結合するにはどうすればよいですか?

するvar A =(から.... 基....新しい {数量= grp.Count()、 コード= grp.Keyを選択 GRPへ:などクエリによって作成された2つのデータソース。コード、 名前= grp.Key.Name });

するvar B =(から.... グループ.... GRPに )新しい {数量= grp.Countを(選択し、 コード= grp.Key.ContCode、 NAME = grp.Key .ContName }); 「A」の

値は次のように返されます。

Qty-Code-Name 

    1-10A-Cont10 
    1-20B-Cont20 
    1-30C-Cont30 

「B」の値は、次のように返されます。

Qty-Code-Name 

    1-10A-Cont10 
    1-20B-Cont20 
    1-30C-Cont30 
    1-40D-Cont40 
    1-50E-Cont50 

私はAとBに参加したい(または実行します代)と、このような結果(その合計列「数量」が、彼らは同じ「コード」と「名」)を持っている場合:

Qty-Code-Name 

    2-10A-Cont10 
    2-20B-Cont20 
    2-30C-Cont30 
    1-40D-Cont40 
    1-50E-Cont50 

は、私はそれをどのように行うことができますか?私を助けてください。 ありがとうございます!

答えて

3

codenameで2つのデータソースとグループを連結してください。 何かのように:

var q = from v in A.Concat(B) 
     group v by new {v.Code,v.Name } into g 
     select new 
     { 
      Qty = g.Sum(a => a.Qty), 
      CodeName = g.Key.Code, 
      Name = g.Key.Name 
     }; 
+0

ありがとう、それは動作します!実際には、前に 'Concat'メソッドを試しましたが、エラーが発生しました。今私はもう一度それを試し、私の問題を発見した。両方のデータソースの 'Qty'フィールドは同じタイプではないので、私は '連結'できません。 [上記の質問では、 'Qty = grp.Count()'に同じタイプの 'Int'があります]もう一度おねがいします! – newbie29

関連する問題