Gruppe und Summe Wählen Viele C#?
Habe ich eine eingehende array mit einer Zahl pro Zeile und eine Zeichenfolge, die für ein oder mehrere key-split durch einen Unterstrich.
für jeden Schlüssel, den ich möchte der Gruppe und der Summe der insgesamt in dem, wenn der Schlüssel erscheint in einer Reihe mit insgesamt 5 einzelnen Elemente aufgeteilt, die durch Unterstrich Ihre Summe erhöhte sich von 5.
Ich Frage mich nur, wie diese repräsentiert werden würde, linq...
class Owl
{
public int SpeciesCount { get; set; }
public string BandIdentifier { get; set; }
}
public class GoOwl
{
public GoOwl(Owl[] owls)
{
//just making a list of test data to illustrate what would be coming in on the array
var owlList = new List<Owl>();
owlList.Add(new Owl { SpeciesCount = 2, BandIdentifier = "OWL1" });
owlList.Add(new Owl { SpeciesCount = 1, BandIdentifier = "OWL1_OWL2_OWL3" });
owlList.Add(new Owl { SpeciesCount = 2, BandIdentifier = "OWL3" });
owlList.Add(new Owl { SpeciesCount = 5, BandIdentifier = "OWL2_OWL3" });
//i'd ideally like to have something like a row for each band identifier split on underscore plus a total species count..
//where you'd sum the species count for each underscored item and group
}
}
wäre das folgende die gewünschte Ausgabe als einzige Owl-Objekte
["OWL1", 3]
["OWL2", 6]
["OWL3", 8]
Bin ich noch nicht ganz bekommen SelectMany..
Cheers
InformationsquelleAutor TheLearningDev | 2013-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
In fließendem sytnax:
Jeder Aufruf .Split('_').Wählen Sie(...) erzeugt ein IEnumerable. Da wir fordern, dass die Methode, die Kette wird für jedes element der owlList variable, wir haben ein IEnumerable von IEnumerables, die abgeflacht, mit SelectMany. In anderen Worten, da jedes element der Liste wird eine Liste der OwlKey/SpeciesCount Kombinationen, wir müssen abflachen der generierten Liste von Listen, bevor wir beginnen, Gruppierung und Summierung.
Danke Ben und danke für die Erklärung, ich Schätze Sie die Zeit nehmen! 🙂
InformationsquelleAutor Ben Reich
Scheint es, wie Sie wollen:
Oder in der Abfrage-syntax:
InformationsquelleAutor p.s.w.g
InformationsquelleAutor arunlalam