Problème avec la Fonction Where dans un tableau

Résolu
vb95
Messages postés
2773
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
27 juin 2022
- Modifié par vb95 le 30/01/2016 à 00:45
vb95
Messages postés
2773
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
27 juin 2022
- 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
2773
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
27 juin 2022
151
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
2773
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
27 juin 2022
151 > 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
235 > vb95
Messages postés
2773
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
27 juin 2022

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
17466
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
27 juin 2022
599 > 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
235 > Whismeril
Messages postés
17466
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
27 juin 2022

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