2017-06-21 16 views
2

複数の列でグループを使用したいのですが、SAMPLE_TIMEをどのように選択すればいいのか理解できず、マヌエル日付をサンプル時間に書き込んでもエラーになります。Linqの複数の列グループ

System.InvalidCastException: 'System.ValueTuple`2[System.String,System.String]' 'System.String' 

現在、私が使用しているものは以下のとおりです。

var dt = (from dr1 in dtTopAll.AsEnumerable() 
          where dr1.Field<DateTime>("SAMPLE_TIME") <= maxDate 
          group dr1 by ("WAIT_CLASS", "SAMPLE_TIME") into g 
          select new 
          { 
           SAMPLE_TIME = // How can i select sample_time, 
           WAIT_CLASS = g.Key, 
           WAITS = g.Sum(z => z.Field<double>("WAITS")/100) 
          }).ToDataTable(); 

答えて

2

は、あなたはこれを試してみました:

var dt = (from dr1 in dtTopAll.AsEnumerable() 
      where dr1.Field<DateTime>("SAMPLE_TIME") <= maxDate 
      group dr1 by new 
         { 
          WAIT_CLASS = dr1.Field<string>("WAIT_CLASS"), 
          SAMPLE_TIME = dr1.Field<DateTime>("SAMPLE_TIME") 
         } into g 
      select new 
        { 
         SAMPLE_TIME = g.Key.SAMPLE_TIME, 
         WAIT_CLASS = g.Key.WAIT_CLASS, 
         WAITS = g.Sum(z => z.Field<double>("WAITS")/100) 
        }).ToDataTable(); 
+0

グループ内で 'CS0746 C#Invalid anonymous type member declarator'のようなエラーがスローされます。匿名型メンバーは、メンバー割り当て、単純名またはメンバーアクセスで宣言する必要があります。 –

+0

@doctorcesar:間違えて申し訳ありませんが、私は投稿を更新しました –

+0

@doctorcesar:なぜ受け入れないのですか?必要に応じてもっと明確に求める –

0

をあなたは新しいことで、あなたは、あなたのエイリアスを使用することができます選択したい場合は、グループを使用して、グループに新しい匿名型を作成されるために必要なもの。これをチェックしてください。 Group By Multiple Column In LINQ in C#

関連する問題