J'ai essentiellement une table avec des en-têtes que je lis depuis une base de données en utilisant linq en C#. Parmi ces en-têtes, il y en a toujours au moins une qui est toujours la même; Total et je veux que ça soit toujours sur la droite.Linq OrderBy Valeur d'attribut et groupe
Voici donc comment mon genre de données sont disposées:
Data
{
Label,
Value,
Age //Not used initially
}
données Exemple:
{"Dog", 7}
{"Cat", 3}
{"Other", 4}
{"Total", 14}
Je voudrais commander les étiquettes dans cet ordre; les noms d'animaux réels sont classés par leur valeur dans l'ordre décroissant et Total est ajouté à la fin:
"Dog", "Other", "Cat", "Total"
Comment puis-je faire dans LINQ. Comment puis-je commander un attribut basé sur la valeur d'un autre attribut?
Une fois que j'ai l'ordre des en-têtes, existe-t-il un moyen facile de commander les rangées futures en fonction de l'ordre déjà déterminé. Si je veux d'abord trouver des en-têtes où (x => x.Age> 20) comment puis-je trier les étiquettes dans où (x => x.Age < = 20) basé sur le même ordre que l'ensemble> 20?
pourquoi entreposez-vous au total? Ne peut-il pas être calculé et ajouté juste à la fin de votre liste? Ensuite, vous pouvez simplement trier par âge décroissant. Ou est-ce que je manque quelque chose? – jim
C'est simplifié. Total n'est pas le nom d'attribut réel. Et il ne peut pas toujours être calculé en additionnant. – Harry