2015-08-26 6 views
5

Ich bin schwer zu finden, wie Sie den Value Teil einer IGrouping Instanz abrufen.Wie kann ich den Wert von einem .NET IGrouping über einen Schlüssel zurückgeben?

Ich habe folgendes:

IList<IGrouping<string, PurchaseHistory> results = someList.GroupBy(x => x.UserName); 

Und ich möchte nun durch jede Sammlung iterieren und die Kaufhistorien für den Benutzer abgerufen werden (und prüfen, ob einige Sachen in der Sammlung von Kaufhistorien vorhanden ist).

Kann mir bitte jemand helfen?

+2

Wie wäre es mit 'foreach'? – Eser

+2

http://stackoverflow.com/questions/8521025/how-to-get-values-from-igrouping – germi

Antwort

4

Wie wäre es mit einer verschachtelten Schleife?

IList<IGrouping<string, PurchaseHistory>> results = someList.GroupBy(x => x.UserName); 

foreach (IGrouping<string, PurchaseHistory> group in results) 
{ 
    foreach (PurchaseHistory item in group) 
    { 
     CheckforStuff(item); 
    } 
} 

oder eine Schleife mit Linq-Anweisung

IList<IGrouping<string, PurchaseHistory>> results = someList.GroupBy(x => x.UserName); 
foreach (IGrouping<string, PurchaseHistory> group in results) 
{ 
    bool result = group.Any(item => item.PurchasedOn > someDate); 
} 
+0

Statt zu tun eine zweite Schleife - gibt es eine Möglichkeit zu überprüfen, ob ein PurchaseHistory existiert, der eine ... i donno .. 'item.PurchasedOn> someDate' hat? –

+0

Hmm - ich habe das versucht ... AH! Ich habe versucht, Ergebnisse.Any (...) .. hoppla! es ist auf der 'Gruppe.Any (..)'. ta. Ich habs. –

-2

Dies ist die Art und Weise, wenn Sie durch alle Elemente iterieren wollen

foreach (IGrouping<int, YourClass> value in result) 
{ 
    foreach (YourClass obj in value) 
    { 
     //Some Code here   
    } 
} 

Und das ist die Art und Weise, wenn Sie suchen möchten etwas mit Schlüssel

List<YourClass> obj1 = result.Where(a => a.Key 
== 12).SingleOrDefault().Where(b=>b.objId.Equals(125)).ToList(); 

(Schlüssel wird in diesem Fall als 'int' betrachtet)

+5

Das Ergebnis wäre eine Aufzählung von Booleans ... – Stephan