Comment puis-je obtenir une liste de noms distincte et ordonnée à partir d'un DataTable à l'aide de LINQ ?

J'ai un DataTable avec une colonne Name. Je souhaite générer une collection de noms uniques classés par ordre alphabétique. La requête suivante ignore la clause order by.

var names =
    (from DataRow dr in dataTable.Rows
    orderby (string)dr['Name']
    select (string)dr['Name']).Distinct();

Pourquoi le orderby n'est-il pas appliqué ?

请先 登录 后评论

2 réponses

a7drew

Pour le rendre plus lisible et maintenable, vous pouvez également le diviser en plusieurs instructions LINQ.

  1. Tout d'abord, sélectionnez vos données dans une nouvelle liste, appelons-la x1, faites une projection si vous le souhaitez
  2. Ensuite, créez une liste distincte, de x1 à x2, en utilisant la distinction dont vous avez besoin
  3. Enfin, créez une liste ordonnée, de x2 à x3, en triant selon ce que vous désirez
请先 登录 后评论
Community
var sortedTable = (from results in resultTable.AsEnumerable()
select (string)results[attributeList]).Distinct().OrderBy(name => name);
请先 登录 后评论
  • 29 abonnés
  • 0 favoris,551 Feuilleter
  • Bob posée à 2022-09-21 05:23