2013-05-26 4 views
1

J'ai un listView rempli de Classes (PlayCard). Je veux compter les classes avec les mêmes valeurs pour cardNumber Si le nombre est plus de deux fois dans le listView je veux testBool devenir vraiComment compter/trouver des éléments listview spécifiques (classe)?

Je suis arrivé ce code déjà:

foreach (PlayCard pCard in listView1.Items) 
{    
    if (listView1.Items.Count(i => i.cardNumber == pCard.cardNumber) > 1) 
    { 
     pCard.testBool = true; 
    } 
} 

mais je suis une erreur:

'Object' does not contain a definition for 'cardNumber' and no extension method 'cardNumber' accepting a first argument of type 'object' could be found.

class PlayCard 
{ 
     public int cardNumber { get; set; } 
     public int id { get; set; } 
     public bool testBool = false; 
} 

Répondre

4

Je pense que votre listView1 est une liste d'objets, et la classe Object ne dispose pas d'un Méthode cardNumber. Si vous savez que les objets sont en fait PlayCard objets, puis un plâtre doit résoudre le problème, à savoir

foreach (PlayCard pCard in listView1.Items) 
{ 

    if (listView1.Items.Count(i => ((PlayCard)i).cardNumber == pCard.cardNumber) > 1) 
    // etc 
+0

Merci beaucoup, cela fonctionne. Je sais que cela a quelque chose à voir avec la chose de l'objet, mais n'a pas la syntaxe correcte. – django

1

Le contrôle ListView ne contient que des éléments de type object.

Utilisez cette if -Déclaration:

if (listView1.Items.Count(i => ((PlayCard)i).cardNumber == pCard.cardNumber) > 1) 

Il devrait maintenant!

+1

Merci beaucoup, ça marche. Je sais que cela avait quelque chose à voir avec la chose de l'objet, mais n'a pas obtenu la bonne syntaxe – django

Questions connexes