6
votes

Peut être distinct d'être exprimé à l'aide d'une requête dite intégrée plutôt que d'un appel de méthode

Compte tenu du code suivant:

select distinct color from TableofColors


2 commentaires

Au fait, cela s'appelle la syntaxe de compréhension de la requête.


@Slaks: ou juste des "expressions de requête" conformément à la section 7.15 de la spécification.


4 Réponses :


1
votes

La syntaxe de compréhension de requête ne prend pas en charge la méthode distincte .

Dans votre cas, vous pouvez simplement écrire couleurs.distinct () ; Vous ne faites rien avec l'expression de la requête.


0 commentaires

2
votes

Il n'y a pas de syntaxe de requête intégrée distincte dans C # aussi loin que je suis au courant. Ceci est aussi proche que possible:

var distinctColors = (from color in colors
                      select color).Distinct()


0 commentaires

0
votes

Vous pouvez essayer ce xxx


5 commentaires

Cela retournera un innmerable > , pas un ienumerable .


Vous devriez écrire de C dans le groupe de couleurs C par C en C Sélectionnez C.Key . En outre, ce sera probablement un peu plus lent que distinct .


Pantalon. Avez-vous des statistiques de groupe de prouves de plus lentement que distinctes?


Non; C'est pourquoi j'ai dit probablement .


Je viens de l'essayer dans Linqpad en utilisant la matrice dans la question; distinct était environ deux fois plus rapide.



8
votes

La syntaxe d'expression requête de la requête C # n'inclut pas "distincte". VB's est cependant, par exemple, du MSDN Docs pour la clause distincte de VB : : xxx

ne pense pas que vous avez utiliser des expressions de requête pour utiliser LINQ :)


0 commentaires