Zum Beispiel habe ich die folgende Liste von Verkaufspersonal und ihre Noten für zwei Key Performance Indicators (KPI):C# LINQ - Ranking Multiple Criteria
SalesmanID KPI1 KPI2
Alice 20 4
Betty 50 6
Cindy 40 8
Doris 70 2
Emily 30 3
Zuerst zählen wir das Verkaufspersonal auf Basis von KPI1 in absteigender Reihenfolge wie folgt.
Als nächstes ordnen wir das Verkaufspersonal basierend auf KPI2 in absteigender Reihenfolge wie folgt ein.
SalesmanID KPI2 KPI2_Rank
Cindy 8 1
Betty 6 2
Alice 4 3
Emily 3 4
Doris 2 5
Schließlich setzen wir sie zusammen die Overall_Rank als Durchschnitt der KPI1_Rank und KPI2_Rank (dh Overall_Score = (KPI1_Rank + KPI2_Rank)/2) zu berechnen
SalesmanID KPI1_Rank KPI2_Rank Overall_Score
Alice 5 3 4
Betty 2 2 2
Cindy 3 1 2
Doris 1 5 6
Emily 4 4 4
Wir haben dann gehen die Verkäufe Rang Personal nach dem Overall_Score in absteigender Reihenfolge.
SalesmanID Overall_Score Overall_Rank
Doris 6 1
Alice 4 2 (Tie)
Emily 4 2 (Tie)
Cindy 2 4 (Tie)
Betty 2 4 (Tie)
Wäre das mit C# LINQ möglich?
Also wollen Sie dies tun: 'Overall_Score = (KPI1_Rank + KPI2_Rank)/2)', ja, das ist möglich. Zeig uns deine aktuelle linq und wir können es dir zeigen. – Stefan
Sie könnten beginnen, indem Sie 'salesmen.OrderBy (x => (x.KPI_Rank + x.KPI2_Rank)/2)' verwenden, um sie in die richtige Reihenfolge zu bringen. Sollte genug sein, um Sie in Gang zu bringen –
Ihre Frage ist wohl eine Reihe von Anforderungen. [mcve] – MickyD