-1
votes

Sélectionnez des enregistrements comptés spécifiques dans des critères spécifiques

Veuillez considérer ce tableau: xxx

Je souhaite sélectionner des enregistrements qui ne disposent que d'un enregistrement en une année. Ceci est mon désir résultat: xxx

Comment puis-je faire cela avec linq . Merci


0 commentaires

3 Réponses :


0
votes

En supposant que vos données sont stockées dans lignes : xxx


2 commentaires

Merci mais je ne veux pas vérifier toutes les valeurs de colonnes


Cela ne vérifie pas toutes les colonnes, juste le nom et l'année, ce qui équivaut au groupement utilisé dans d'autres réponses suggérées.



0
votes

Vous auriez besoin de faire un groupement avec une clause "ayant". Le code ci-dessous devrait vous aider ou vous pointer dans la bonne direction.

        var data = new List<Data>();
        //Method syntax:
        var row = data.GroupBy(k => new { k.Year, k.Name}, v => v)
            .Where(grp => grp.Count() == 1)
            .SelectMany(o => o)
            .ToList();

        //Query syntax:
        var row2 = (from d in data
                group d by new {d.Year, Name = d.Name}
                into g
                where g.Count() == 1
                select g)
            .SelectMany(o => o)
            .ToList();


3 commentaires

Merci pouvez-vous me montrer linq version. meilleures salutations


Cela ne donne pas le résultat indiqué. Le groupement devrait être par nom et chaque année


Je pense que vous devriez groupby avec nom et année .is it true?



2
votes

Faire un groupe d'enregistrements avec la même combinaison [Nom, l'année] et jeter tous les groupes qui ont plus d'un élément: xxx

i utilise sauter (1). () au lieu de comptez () == 1 , car il est plus efficace: pourquoi compter tous les 1000 enregistrements, si vous pouvez arrêter de compter après le premier enregistrement?

La sélection finale sélectionne l'enregistrement unique et unique dans le groupe


0 commentaires