2017-06-21 4 views
2

Ich möchte die Gruppe von mehreren Spalten verwenden, konnte jedoch nicht verstehen, wie sollte ich die SAMPLE_TIME auswählen und auch wenn ich Manuel Datum zu Probezeit schreiben, bekomme ich folgenden Fehler;Mehrere Spalten Gruppe von auf Linq

Derzeit Was ich verwende ist wie unten;

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(); 

Antwort

2

Haben Sie versucht:

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

innerhalb der Gruppe von, es wirft einen Fehler wie 'CS0746 C# Invalid anonyme Typ Mitglied Deklarator. Anonyme Member müssen mit einer Member-Zuweisung, einem einfachen Namen oder einem Member-Zugriff deklariert werden. ' –

+0

@doctorcesar: Entschuldigung für den Fehler, ich habe den Beitrag aktualisiert, werfen Sie einen Blick bitte –

+0

@doctorcesar: warum nicht akzeptieren? Fühlen Sie sich frei, nach mehr Klärung zu fragen, wenn nötig –

0

Was Sie brauchen, ist eine neue anonyme Art auf Gruppe zu erstellen, indem Gruppe durch neue Verwendung und wenn Sie auswählen möchten Sie Ihren Alias ​​verwenden können. Bitte prüfen Sie das; Group By Multiple Column In LINQ in C#