Ich habe schon einmal eine Frage zum Abrufen der Daten auf dem Server gestellt und habe auf der Website eine Lösung gefunden. Der Vorschlag war, Linq zu verwenden, die perfekt funktioniert, aber da ich relativ neu bin, brauche ich ein wenig in die Tiefe helfen.
Mit Johns Lösung:
class Guy
{
public int age; public string name;
public Guy( int age, string name ) {
this.age = age;
this.name = name;
}
}
class Program
{
static void Main( string[] args ) {
var GuyArray = new Guy[] {
new Guy(22,"John"),new Guy(25,"John"),new Guy(27,"John"),new Guy(29,"John"),new Guy(12,"Jack"),new Guy(32,"Jack"),new Guy(52,"Jack"),new Guy(100,"Abe")};
var peeps = from f in GuyArray group f by f.name into g select new { name = g.Key, count = g.Count() };
foreach ( var record in peeps ) {
Console.WriteLine( record.name + " : " + record.count );
}
}
}
Ich kann die Anzahl der Vorkommen von John, Jake und Abe ermitteln, indem ich das oben von John vorgeschlagene Verfahren anwende. Was aber, wenn das Problem etwas komplizierter wäre, zum Beispiel
var GuyArray = new Guy[] {
new Guy(22,"John", "happy"),new Guy(25,"John", "sad"),new Guy(27,"John", "ok"),
new Guy(29,"John", "happy"),new Guy(12,"Jack", "happy"),new Guy(32,"Jack", "happy"),
new Guy(52,"Jack", "happy"),new Guy(100,"Abe", "ok")};
Der obige Code funktioniert hervorragend, um die Anzahl der Vorkommen der verschiedenen Namen abzurufen, aber was ist, wenn ich die Anzahl der Vorkommen der Namen und auch die Anzahl der Vorkommen jeder Person, die glücklich, traurig oder ok ist, benötige. d.h. die Ausgabe ist: Name, Anzahl der Namen, Anzahl der Namen, die glücklich sind, Anzahl der Namen, die traurig sind, Anzahl der Namen, die in Ordnung sind. Wenn linq nicht die beste Lösung für dieses Problem ist, bin ich bereit, mir alle Alternativen anzuhören. Für Ihre Hilfe bin ich Ihnen sehr dankbar.