IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

recuperer le resultat d'un GroupBy (linq to sql) en parcourant une collection


Sujet :

Dotnet

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut recuperer le resultat d'un GroupBy (linq to sql) en parcourant une collection
    Bonjour,

    Soit le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    static string[] strings = new [] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
     
     
     public static void Sample7() {
            // use GroupBy() to construct group partitions out of similar elements
            var q = strings.GroupBy(s => s[0]); // <- group by first character of each string
            //g est l'élément result du group by 
            foreach(var g in q) {
              Console.WriteLine("Group: {0}", g.Key);
              foreach(string v in g) {
                Console.WriteLine("\tValue: {0}", v);
              }
            }
        }
    La première boucle foreach parcourt chacun des resultats obtenus par la requête GroupBy et recupère la clé. ok.
    Chaque resultat comprend un tableau de type string nommé elements (voir imp ecran ci-jointe) avec les valeurs du tableau strings associés à chaque clé, par le GroupBy

    Pourquoi ne peut on pas ecrire, dans la 2ème boucle foreach

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach(string v in g.elements) {
                Console.WriteLine("\tValue: {0}", v);
              }

    au lieu du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach(string v in g) {
                Console.WriteLine("\tValue: {0}", v);
              }
    ce qui paraît plus logique.

    Merci beaucoup de votre aide!

    Bien cordialement.

    new_wave
    Images attachées Images attachées  
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par new_wave Voir le message
    Pourquoi ne peut on pas ecrire, dans la 2ème boucle foreach
    si la question c'est juste ça, c'est parce que microsoft a décidé comme ça ^^

    en vrai c'est un igrouping qui hérite de ienumerable, donc ca permet de récupérer le résultats et de le traiter comme un ienumerable comme les autres (normal il contient des éléments)
    en effet dans beaucoup de cas ca serait plus lisible et intuitif de pouvoir avoir .elements comme on a .key, mais ca serait moins compatible avec le framework et ce qu'on peut faire sur les ienumerables
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    et on voit que elements, n'est pas un membre publique (donc pas atteignable)

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/07/2010, 10h37
  2. Réponses: 2
    Dernier message: 02/03/2010, 23h32
  3. [Linq to Sql] Passage d'une appli web utilisant Linq sur serveur
    Par cereal59 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/11/2008, 13h15
  4. [Linq to Sql] Accesseur pour une valeur ou association ?
    Par Arnard dans le forum Accès aux données
    Réponses: 0
    Dernier message: 24/10/2008, 10h02
  5. [C#][Linq to Sql] Connection a une base de données
    Par Greg84 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/09/2008, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo