0
votes

LINQ Query Mettre à jour tous les articles dans des groupes qui rencontrent mon état

Je veux mettre à jour la propriété "isqualified = true" for-

  1. Tous les étudiants dans les seuls groupes qualifiés li>
  2. Groupes qualifiés? Ces groupes qui ont au moins un étudiant qui sont passés de "University = OPQ" (exemple: groupe 2 et 3) li>
  3. laissez une propriété «isqualifiée» d'autres étudiants de groupe inchangée. (Exemple: groupe 1) li> ol>

    ce que j'ai essayé - strong> p> xxx pré>

    cela ne fonctionne pas. S'il vous plaît aidez-moi. P>

    Mon code - P>

    public class StudentInfo
    {
      public string Student { get; set; }
      public string University { get; set; }
      public int GroupID { get; set; }
      public bool IsQualified {get; set;}
    
    }
    
    List<StudentInfo> studentsList = new List<StudentInfo>();
    
    StudentsList.Add( new StudentInfo { Student="John", University="ABC", GroupID = 1, IsQualified=False});
    StudentsList.Add( new StudentInfo { Student="Jack", University="DEF", GroupID = 1, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Peter", University="GHI", GroupID = 1, IsQualified=False} );
    
    StudentsList.Add( new StudentInfo { Student="Donald", University="JKL", GroupID = 2, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Olivia", University="ABC", GroupID = 2, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Emity", University="OPQ", GroupID = 2, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Emma", University="GHI", GroupID = 2, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Alan", University="DEF", GroupID = 2, IsQualified=False} );
    
    StudentsList.Add( new StudentInfo { Student="Adam", University="GHI", GroupID = 3, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Jacob", University="ABC", GroupID = 3, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Matthew", University="OPQ", GroupID = 3, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Saint", University="VWX", GroupID = 3, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Joshua", University="TRP", GroupID = 3, IsQualified=False} );
    StudentsList.Add( new StudentInfo { Student="Aubrey", University="STU", GroupID = 3, IsQualified=False} );
    


2 commentaires

"Cela ne fonctionne pas" - n'est pas utile. Qu'attendez-vous? Qu'est ce que tu obtiens?


Il met à jour uniquement les étudiants correspondants, et non tous les élèves de groupes qui répondent à la condition (2)


3 Réponses :


1
votes

Votre filtrage est faux.

Vous devez d'abord regrouper, puis filtrer seconde. Sinon, vous regroupez par une liste très sélectionnée. xxx


0 commentaires

0
votes

Démo sur Dotnet Fiddle

  1. Vous devez obtenir tous les groupes qualifiés en regroupant alors où la condition
  2. boucle Tous Liste des étudiants Pour mettre à jour isqualified en conséquence. XXX

    sortie xxx


0 commentaires

0
votes

Le problème de votre solution s'applique où strong> condition avant de regrouper les résultats. Il filtrera les autres étudiants qui sont dans Groupid 2 et 3,

Entrez la description de l'image ici p>

Vous devez d'abord regrouper les résultats, puis appliquer la condition " Les groupes qui ont au moins un étudiant qui passait de "University = Opq" em> " p> xxx pré>

 Entrez la description de l'image ici A > p>

Ensuite, vous pouvez faire la possibilité de mettre à jour le champ Isqualifié, P>

results.ForEach(x => x.IsQualified = true);


0 commentaires