linq distinctes et sélectionnez nouvelle requête
J'ai une requête
var QP = (from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}).Distinct();
Résultat est:
- 1 Ivanov Ivan
- 1 Ivanov Ivan
- 2 Petrov Petr
- 3 Le Journaliste Ivan
- 3 Le Journaliste Ivan
et j'ai besoin de résultat:
- 1 Ivanov Ivan
- 2 Petrov Petr
- 3 Le Journaliste Ivan
Avez-vous essayé d'appliquer
oui. Dosn pas de travail
Distinct
à votre source de données, comme from a in QProductAllInfo.Distinct()
?oui. Dosn pas de travail
OriginalL'auteur alexandrovdi | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
En supposant que les différents Identifiants sont toujours considérées comme distinctes et vous pouvez l'essayer.
Je serais probablement de l'écrire dans les deux requêtes sur. De cette façon, il est facile à déboguer et plus lisible. Vous pouvez utiliser
MoreLinq
.DistinctBy
Télécharger
Vous pouvez également utiliser
Vous ne pouvez pas affecter un Ienumerable à une source de données. Veuillez google sur la façon d'attribuer les Ienumerable à la source de données. Je ne suis pas bon à ASP.net
Je vous remercie de votre DistinctBy Travail!!!
Il n'est pas le mien mec. C'est Jon Skeets Cerveau de l'enfant. Je suis juste un utilisateur de celui-ci.
OriginalL'auteur Sandeep
Si vous avez des doublons dans QProductAllInfo, le remplacement de votre code, cela devrait résoudre votre problème.
si cela ne fonctionne pas, vous pouvez utiliser des tuples au lieu de types anonymes comme ceci:
L'application de l'opérateur Distinct sur les types anonymes est inutile parce que les types anonymes sont toujours les types de référence qui donc mettre en œuvre les IEquatable interface.
OriginalL'auteur Mareek
Vous pourriez mettre en œuvre un IEqualitycomparer .D'utilisation distinctes pour déterminer si l'élément existe déjà dans la liste. On peut comparer sur les attributs de la place sur la référence à un même objet.
Mais je ne sais pas si cela fonctionne sur les types anonymes.
OriginalL'auteur Andreas Lindgren