12
votes

Comptez les lignes à Linq

Je suis très nouveau dans Linq

J'ai écrit la requête suivante: xxx

Je veux compter les lignes retournées dans la duplication de résultat

J'ai cherché beaucoup d'articles qui dit utiliser duplicate.count (). mais je ne vois pas compte () dans mon intelisense

Comment puis-je compter du résultat


2 commentaires

Je pense que le plus grand voyage est manquant à l'aide de System.Linq, mais je pense que cela aussi - à Linq, n'utilisez pas le nombre () lorsque vous voulez dire n'importe quel ()


@Ops Link Broke - Nouveau lien ci-dessous. En bref, tout () peut être plus efficace à la fin de la DB: communauté.embarcadero.com/blogs/ientry/...


3 Réponses :


8
votes

Vous avez besoin de la ligne suivante en haut de votre fichier: xxx

mais il devrait y avoir une petite icône d'aide qui apparaît sur la référence manquante sur comptant que A Visual Studio ajoutez cette ligne automatiquement.

mise à jour : Ceci est un exemple compilable complet: xxx

Quelle version de Visual Studio utilisez-vous? Et quelle est votre version cible du .NET Framework? (Nécessite> = vs 2008 et> = .NET 3.5.)


10 commentaires

En fait, j'utilise Visual Studio 2011 avec .NET Framework 4.0 et l'application est sur LightSwitch pour que la v2oneboxdataentaity est une base de données et me_employées est un jeu de données et il est généré automatiquement. Je ne peux pas les créer séparété


Désolé c'est Visual Studio 2010 (Taper Mistak)


Lorsque vous cliquez avec le bouton droit de la souris sur me_employeux dans votre code et choisissez "Aller à la définition", que lisez cette ligne?


Public Global :: Microsoft.LightSwitch.framework.Entytitchset Me_employé {Get {Retour Global :: LightswitchApplication.v2oneboxData.DetailsClass.get Valeur (Ceci, Global :: LightswitchApplication.v2oneboxData.DétairesClass .Pro pertyproperties.m e_employeux); }}


J'ai du mal à trouver une documentation MSDN sur microsoft.lightwitch.framework.entityset . Est-ce là par hasard un .asqueriserisable dans l'intellisense?


D'accord, super. Donc, juste faire .asquerisable (). Comptez () et vous devriez être défini.


Vous voulez faire duplication.Asquéririsable (). Compte ()? Ensuite, je ne trouve pas la méthode de comptage () dans la duplication.aSquérissable () aussi :(


@ GHANSHYAM.Mirani Vérifiez si votre projet Références System.core


J'ai eu la suite d'erreur lors de l'ajout de System.core Assembly: "Vous ne pouvez pas ajouter de référence à System.core.dll car il n'a pas été construit contre le Silverlight Runtime. Le projet Silverlight ne fonctionnera que avec Silverlight Assemblies.


@ ghanshyam.mirani: Vous allez devoir recommencer du début. Les requêtes sont correctes mais apparemment, vous n'avez pas vos projets configurés correctement.



25
votes

Que diriez-vous d'utiliser des méthodes d'extension: xxx

encore meilleur: xxx

grosse note: assurez-vous que vous avez un système référencé. Coeur. System.Data.Linq aussi, mais je suppose que vous avez déjà référencé cela.


6 commentaires

Toujours je ne trouve pas la méthode Count () d'IntelliSense


Assurez-vous d'avoir ajouté une référence à System.core;


J'ai eu la suite d'erreur lors de l'ajout de System.core Assembly: "Vous ne pouvez pas ajouter de référence à System.core.dll car il n'a pas été construit contre le Silverlight Runtime. Le projet Silverlight ne fonctionnera que avec Silverlight Assemblies.


Dans ce cas, assurez-vous de créer un projet d'application Silverlight, car ils utilisent leurs propres versions d'assemblages (plus légers). En d'autres termes, il ne fonctionnera pas pour un ASP.NET, WPF ou Console


Si vous allez à la boîte de dialogue Ajouter des références et que deux systèmes.core.dll sont répertoriés, l'un d'entre eux doit fonctionner avec Silverlight - vous pouvez utiliser l'essai et l'erreur pour déterminer lequel.


Merci pour vos réponses favorables: j'ai résolu le problème en utilisant: Duplicate.Cast (). Compte ();



3
votes

Si vous utilisez des expressions Lambda, assurez-vous d'avoir référencé system.linq.expressions code> espace de noms.

var cardCount = datatable
    .AsEnumerable()
    .Where(p => p.Field<decimal>("SpotID") ==
        Convert.ToDecimal(currentActivatedSpot))
    .Count();


1 commentaires

@Sandor: Merci de l'avoir amené à mon avis. Je vais garder ces choses à l'esprit.