J'ai une liste comme celle-ci:
Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange
J'essaie de faire un SELECT UNIQUE avec LINQ, c'est-à-dire que je veux
Red
Brown
Yellow
Green
Orange
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name;
J'ai ensuite changé cela en
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name.Distinct();
sans succès. Le premier select
obtient TOUTES les couleurs, comment puis-je le modifier pour obtenir uniquement les valeurs uniques?
S'il existe un meilleur moyen de structurer cette requête, vous serez ravi de suivre cette voie.
Comment procéder pour l’éditer afin que je puisse avoir .OrderBy ("nom de colonne") c’est-à-dire alphabétiquement par nom de couleur, ainsi nom propriété?
Je continue à recevoir un message:
Les arguments de type ne peuvent pas être déduits de l'utilisation. Essayez de spécifier explicitement les arguments de type.
Le Distinct () va gâcher la commande, alors vous aurez à faire le tri après cela.
var uniqueColors =
(from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name).Distinct().OrderBy(name=>name);
var uniqueColors = (from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name).Distinct();
En utilisant la syntaxe de compréhension de requête, vous pouvez obtenir l'ordre suivant:
var uniqueColors = (from dbo in database.MainTable
where dbo.Property
orderby dbo.Color.Name ascending
select dbo.Color.Name).Distinct();