Problème avec la Fonction Where dans un tableau

Résolu
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - Modifié par vb95 le 30/01/2016 à 00:45
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 30 janv. 2016 à 21:20
Bonjour

 restedanssabot = casessabot.Where(Function(p) p.indicepion <> -1).Count ' -1 indique une case sabot vide

'restedanssabot = 0
'For j = 0 To 14
'    If casessabot(j).indicepion <> -1 Then restedanssabot = restedanssabot + 1
'Next


J'ai un problème que je ne comprend pas
J'ai une classe Casessabot de 15 éléments (0 to 14)
indicepion contient un Integer de - 1 à 101 ( - 1 indique une case vide et les autres valeurs indiquent le numéro d'un pion de 0 à 101)

La Fonction avec le Where m'indique une erreur : La référence d'objet n'est pas définie à une instance d'un objet (p.indicepion est sur fond jaune)
Ce que je ne comprend pas c'est que la partie de code avec la boucle For fonctionne ce qui me prouve que mes casessabots(0 à 14) existent bien et que leurs propriétés indicepion aussi .

Par contre j'ai une fonction identique qui fonctionne correctement
 pions.Where(Function(p) p.statutpion = Classpion.Etatstatutpion.Sac).Count


Si quelqu'un pouvait m'aiguiller ce serait sympa !
PS : j'essaie de refaire un jeu célèbre ( le Sc.......... pour pas le nommer ) mais avec des classes
Merci d'avance
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 

1 réponse

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié par vb95 le 30/01/2016 à 00:59
Je me réponds à moi-même
J'ai déclaré
Public casessabot(0 To 15) As Classcasesabot

Dans une Sub d'initialisation pour les casessabots j'ai utilisé un For = 0 to 14
Mon sabot comporte 15 cases de 0 à 14
Ma fonction avec le Where cherchait sur 16 casessabots ( de 0 to 15 dans la déclaration Public) et indicepion pour casessabot(15) n'existant pas : plantage !
Grosse erreur toute bête
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
0
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14
30 janv. 2016 à 09:05
Bonjour vb95.
Ça arrive à tout le monde. J'en sais quelque chose.
Cordialement.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017
30 janv. 2016 à 09:18
Bonjour Zermelo
On apprend beaucoup de ses erreurs : c'est la meilleure école
Meilleurs vœux à toi
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024
30 janv. 2016 à 10:25
Bonjour à tous,
cela me rappelle le jour où je me suis fait couler un "café" en oubliant d'en mettre dans le filtre.
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656 > ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018
30 janv. 2016 à 11:42
Bonjour,

Uc, si d'aventure tu m'invitais à prendre un café, j'opterais pour un thé!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024
Modifié par ucfoutu le 30/01/2016 à 12:32
Bonjour, Whism,
ça va "viendre", ça va "viendre" ...
Tu paries ?

Remarque : il y a environ 40 ans, j'ai confondu un grand bol de thé japonais, au fond duquel je voyais un grain de riz, avec un rince-doigts ...
Je préfère ne pas te dire la tête que m'a faite l'hôtesse ... Mémorable !
Depuis, d'ailleurs, je me demande si "tête" s'écrit vraiment avec un "t".
0
Rejoignez-nous