Je vais avoir du mal à comprendre comment je peux former une requête LINQ pour effectuer les opérations suivantes:C# LINQ Requête - Grouper par
J'ai CallLogs de table et je veux revenir un seul résultat qui représente la appel qui a la plus longue durée.
La ligne ressemble à ceci:
[ID] [RemoteParty] [Durée]
Il peut y avoir plusieurs lignes pour la même RemoteParty, chacun qui représente un appel d'une durée particulière . Je veux savoir quelle RemoteParty a la durée totale la plus longue.
LINQ, je suis arrivé jusqu'ici:
var callStats = (from c in database.CallLogs
group c by c.RemoteParty into d
select new
{
RemoteParty = d.Key,
TotalDuration = d.Sum(x => x.Duration)
});
Alors maintenant, j'ai un résultat groupé avec la durée totale pour chaque RemoteParty mais je dois le seul résultat maximal.
[DistinctRemoteParty1] [Durée]
[DistinctRemoteParty2] [Durée]
[DistinctRemotePartyN] [Durée]
Comment puis-je modifier la requête pour y parvenir?
Cela ne ferait que renvoyer le TotalDuration maximum sans la partie RemoteParty. – configurator