Recherche de l'index :/

Résolu
cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007 - 10 janv. 2007 à 20:12
cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007 - 10 janv. 2007 à 22:21
Bonjour, j'ai une List<Cell> d'un objet Cell :

public class Cell

{

            public Cell()

            {

            }

           public int g;

            public int f;

            public Cell parent;

            public Point pos;

}


et j'aimerai recupérer l'index d'un objet Cell qui serait ds la list,
sachant que la condition de reconnaissance se fait juste sur le champ
pos (sur le Point !)

Comment je fais svp ! Je m'en sort pas avec le help de la msdn ; entre Icomparer, predicate, delegate... :'(

Donc si qq'un pouvait repondre juste a mon exemple ce serait super !


Merci d'avance !

6 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
10 janv. 2007 à 21:22
Salut, parcours simplement ta liste avec un foreach ou si tu veux utiliser FindIndex il te suffit de créer une fonction qui renvoie un bool et prend un Cell en paramètre. C'est le nom de cette fonction que tu dois passer comme predicat à FindIndex. Dans cette fonction renvoi true au moment ou le champ 'pos' correspond à ce que tu veux.
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 janv. 2007 à 21:36
Une solution possible :

public



class



Cell

{
  

public
Cell()
   {
   }


   public



int
g;


   public



int
f;


   public



Cell
parent;


   public



Point
pos;
}


public



class



CellCollection
:

List
<

Cell
>
{
  

public



Cell



this
[

Point
p]
   {
     

get
     
{
        

// Return the value
     
}
     

set
     
{
        

// Set the value
     
}
   }
}


<hr size="2" />



-Blog-/FON
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 janv. 2007 à 20:42
En faisant une surcharge de this[Point p]
Non ?

<hr size="2" />-Blog-
0
cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007
10 janv. 2007 à 20:44
euh...c'est un peu leger comme reponse la ! (moi pas comprendre !)
Et je veux une reponse sure svp, sinon je posterais pas :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 janv. 2007 à 21:47
Pour la méthode proposée par Lutinore:

public class
Program
{
  
public
static
void Main(
string[] args)
   {
     
List<
Cell> test =
new
List<
Cell>();
     
List<
Cell> test1 = test.FindAll(
new
Predicate<
Cell>(Find));
   }

  
private
static
bool Find(
Cell c)
   {
     
if (c.pos == XXX)
      {
        
return
true;
      }
     
else
      {
        
return
false;
      }
   }
}

public
class
Cell
{
  
public Cell()
   {
   }

  
public
int g;
  
public
int f;
  
public
Cell parent;
  
public
Point pos;
}

<hr size="2" />-Blog-
0
cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007
10 janv. 2007 à 22:21
Le pb ds la derniere solution c'est justement le XXX !

Bon, je vais clore le post et regarder du coté de ta solution (et sinon je ferais avec le foreach !), merci !
0
Rejoignez-nous