Bonjour,
je cherche à trier une liste d'objet métier via linq en utilisant un index de colonne.
Quelqu'un a t'il une idée ?
Merci de votre aide
Bonjour,
je cherche à trier une liste d'objet métier via linq en utilisant un index de colonne.
Quelqu'un a t'il une idée ?
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var result = from objetMetierTemporaire in collectionObjetMetier orderby objetMetier.ColonneId select objetMetierTemporaire ; var result = collectionObjetMetier.OrderBy(obj => obj.ColonneId);
Ca ?
Tu veux dire l'équivalent de order by 1 en SQL ? Ce n'est pas possible directement, mais de toute façon, à quoi ça servirait ? Tu ne contrôles pas le code SQL généré, donc tu ne sais pas quelle colonne se trouve à quelle position...
A mon avis, le tri par index de colonne n'est pas fait pour être utilisé dans une application, c'est juste pour gagner du temps quand tu exécutes des requêtes SQL manuellement. Si tu sais selon quelle colonne tu veux trier, tu donnes le nom de la colonne, ça fait quand même un code plus clair...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bonjour,
je vais définir mon contexte. je développe une application mvc4 / razor et j'utilise Jquery pour le coté IHM et notamment la datatable jquery.
je l'exploite avec une source de données ajax. je dois par conséquent gérer les tris moi même coté contrôleur. Ma source de données se résume à une liste d'objet métier que je manipule (filtre , trie ect ...)
Ma méthode coté contrôleur prend un objet qui transmet entre autre la colonne que je dois trier , je reçois un index de colonne.
je cherche une solution simple à base de Linq pour ordonner ma liste.
si je vous comprend bien Tomlev je dois associer un index à nom de ma colonne quelque chose comme :
si index = 1 alors colonne = name
si index = 2 alors colonne = first_name ect ....
et faire un orderby colonne dans ma query Linq est ce la ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
je comprend mieux.
y a t'il moyen de stocker le nom de mes colonnes dans une sorte de dictionnaire dans un ordre défini et rechercher dans ce dictionnaire la valeur à l'index I et j'ai le nom de ma colonne ?
Merci à vous
et cette méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Enumerable.OrderBy<TSource, TKey>
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
c'est visiblement une autre méthode de trie je pensais faire :
mais c'est qu'une autre façon de faire le trie ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 From e in myList orderby macolonne .....
je cherche une solution assez souple pour ne pas faire x si sinon en fonction de mon index et mes colonnes.
y a t'il une méthode de trie qui prend en paramètre une chaine avec le nom de la colonne ?
Non, ça revient exactement au même. La syntaxe de requête Linq est convertie par le compilateur en appels aux méthodes de Enumerable ou Queryable.
Oui, mais pas directement... Jette un coup d'oeil à ça :
http://dynamiclinq.codeplex.com/
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
intéressant ...
j'ai trouvé ce ci :
http://www.codeproject.com/Articles/...by-column-name
il se base sur les lambas expression et ceci RadixSolutionsUtilities
je sais pas ce que c'est
Voici ma solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //Trie A finir int sortOrder = Convert.ToInt32(param.iSortCol_0); Func<CourseDataSet, Object> orderByFunc = null; if (sortOrder == 0) orderByFunc = item => item.nomCours; else if (sortOrder == 1) orderByFunc = item => item.typeDeCours; else orderByFunc = item => item.nomCours; var orderedList = filteredList; string sortDir = param.sSortDir_0; if(sortDir=="asc") orderedList = filteredList.OrderBy(orderByFunc).ToList(); else orderedList = filteredList.OrderByDescending(orderByFunc).ToList();
Partager