2009-08-25 11 views
1

Betrachten Sie den folgenden Code-Snippet:Where-Klausel in LINQ to SQL Sum() Funktion

// get number of sheep in DataTable by counting UID's 
Double n = DataTableContainingSheep.AsEnumerable().Sum(r => (Int32)r["sheepId"]) 

Was passiert, wenn ich will nur die schwarzen Schafe in der Datatable zählen? Kann ich eine select-Klausel in die Funktion einbauen?

+0

Warum wäre eine Tabelle, die eine Liste von Sheep contaning enthalten ein Feld „Schaf“ genannt, warum das ein numerischer Typ sein würde? Ich kann verstehen, dass Sie ein einfaches Beispiel dafür geben wollen, was Sie tun wollen, aber diese Vereinfachung sollte Sinn machen. – AnthonyWJones

+0

Punkt genommen. Meine Frage wurde aktualisiert. Stack Overflow regt genau diese Art von Verhalten an - Du solltest einfach meinen Beitrag selbst bearbeitet haben :) – roosteronacid

Antwort

2

sollte es sein, so etwas wie:

Double n = 
    DataTableContainingSheep 
     .AsEnumerable() 
     .Where(r => (String)r["color"] == "black") 
     .Sum(r => (Double)r["sheepId"]); 
+0

Danke Bruno :) – roosteronacid

+0

Die DataTable ist reine Fiktion. Ich habe gerade einen Beispielcode erfunden, um mir zu erklären, was ich erreichen möchte. – roosteronacid

+0

Cool! Freut mich, dass es für dich nützlich war. –