2017-09-10 1 views
1

Veuillez considérer que je ne suis pas bon en anglais.Comment interroger Classe ayant la même valeur

Liste de la classe 'Student' est lié à ListBox et Displaymemeber est le champ 'group'.

Mon objectif est de montrer le groupe sans chevauchement. (Juste A et B)

Mais ici, mon code s'affiche comme ceci.

ListBox

Comment puis-je afficher uniquement A et B?

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     Student st1 = new Student("Kim", 15, Group.A); 
     Student st2 = new Student("Lee", 15, Group.A); 
     Student st3 = new Student("Park", 15, Group.B); 

     Student.Add(st1);   
     Student.Add(st2);   
     Student.Add(st3); 

     listBox1.DataSource = Student.LstStudent; 
     listBox1.DisplayMember = "group"; 
    } 
} 


public enum Group 
{ 
    None, 
    A, 
    B, 
    C 
} 

public class Student 
{ 
    private static List<Student> _LstStudent = new List<Student>(); 
    public static List<Student> LstStudent 
    { 
     get 
     { 
      return _LstStudent; 
     } 
    } 

    public Group group { get; set; } 
    public string name { get; set; } 
    public int age { get; set; } 


    public Student(string name, int age, Group group) 
    { 
     this.name = name; 
     this.age = age; 
     this.group = group; 
    } 

    public static void Add(Student student) 
    { 
     LstStudent.Add(student); 
    } 
} 

Répondre

0

Si votre intention est d'afficher uniquement les groupes que vous pouvez utiliser LINQ pour filtrer votre List<Student>.

Essayez de changer

listBox1.DataSource = Student.LstStudent; 
listBox1.DisplayMember = "group"; 

Pour

listBox1.DataSource = Student.LstStudent.Select(x => x.group).Distinct().ToArray(); 
+0

Merci. Ça marche. Mais avec l'addition '.ToArray()' – ysOh

+0

@YeongSeokOh J'ai mis à jour ma réponse pour inclure la chaîne de méthode '.ToArray()'. Je n'étais pas sûr si la propriété 'DataSource' nécessitait un tableau ou simplement un' IEnumerable'. Veuillez accepter la réponse si elle répond maintenant à votre question, merci! –

+0

Puis-je en demander un de plus? Comment pouvez-vous obtenir tous les étudiants ce groupe est un? – ysOh