Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment conserver le tri en cours dans une boucle ?

3 réponses
Avatar
okpwal
Bonjour,

DataView dv = objTable221q.DefaultView;
dv.Sort = "libelle";
foreach(DataRowView drv in dv)
{
//
}

Ma question, est-ce que le parcours sera effectué suivant le tri ?
Ou bien faut-il faire quelque chose du genre :
int k = 0;
while(k<dv.Count)
{
//DataRowView drv = drv.Row[k];
DataRowView drv = dv[k].Row;
}
Sinon quelqu'un as-t-il une idée pour conserver le tri en bouclant sur
les rows ?
Merci par avance.
G.

--
okpwal
la perdrix !

3 réponses

Avatar
Paul Bacelar
Comme vous ne modifiez pas objTable221q, je ne vois pas le problème ?
--
Paul Bacelar
MVP VC++

"okpwal" wrote in message
news:
Bonjour,

DataView dv = objTable221q.DefaultView;
dv.Sort = "libelle";
foreach(DataRowView drv in dv)
{
//
}

Ma question, est-ce que le parcours sera effectué suivant le tri ?
Ou bien faut-il faire quelque chose du genre :
int k = 0;
while(k<dv.Count)
{
//DataRowView drv = drv.Row[k];
DataRowView drv = dv[k].Row;
}
Sinon quelqu'un as-t-il une idée pour conserver le tri en bouclant sur les
rows ?
Merci par avance.
G.

--
okpwal
la perdrix !




Avatar
okpwal
> Comme vous ne modifiez pas objTable221q, je ne vois pas le problème ?
--
Paul Bacelar
MVP VC++

"okpwal" wrote in message
news:
Bonjour,

DataView dv = objTable221q.DefaultView;
dv.Sort = "libelle";
foreach(DataRowView drv in dv)
{
//
}

Ma question, est-ce que le parcours sera effectué suivant le tri ?
Ou bien faut-il faire quelque chose du genre :
int k = 0;
while(k<dv.Count)
{
//DataRowView drv = drv.Row[k];
DataRowView drv = dv[k].Row;
}
Sinon quelqu'un as-t-il une idée pour conserver le tri en bouclant sur les
rows ?
Merci par avance.
G.

-- okpwal
la perdrix !






En fait ceci n'est qu'un extrait de code.
Je voulais comprendre comment se fait le parcours dans un foreach ; en
effet je fais plusieurs accès à objTable221q avec des filtres
différents et des 'Sort' différents. Ma préoccupation était de savoir
si en modifiant le tri, le prochain foreach en tiendra compte ou pas ?
J'ai utilisé la boucle while poue être certain d'imposer un sens de
parcours, mais la question elle reste posée.
Merci tout de même.
G.

--
okpwal
la perdrix !
Avatar
Gilles TOURREAU
okpwal vient de nous annoncer :
Comme vous ne modifiez pas objTable221q, je ne vois pas le problème ?
--
Paul Bacelar
MVP VC++

"okpwal" wrote in message
news:
Bonjour,

DataView dv = objTable221q.DefaultView;
dv.Sort = "libelle";
foreach(DataRowView drv in dv)
{
//
}

Ma question, est-ce que le parcours sera effectué suivant le tri ?
Ou bien faut-il faire quelque chose du genre :
int k = 0;
while(k<dv.Count)
{
//DataRowView drv = drv.Row[k];
DataRowView drv = dv[k].Row;
}
Sinon quelqu'un as-t-il une idée pour conserver le tri en bouclant sur les
rows ?
Merci par avance.
G.

-- okpwal
la perdrix !






En fait ceci n'est qu'un extrait de code.
Je voulais comprendre comment se fait le parcours dans un foreach ; en effet
je fais plusieurs accès à objTable221q avec des filtres différents et des
'Sort' différents. Ma préoccupation était de savoir si en modifiant le tri,
le prochain foreach en tiendra compte ou pas ?
J'ai utilisé la boucle while poue être certain d'imposer un sens de parcours,
mais la question elle reste posée.
Merci tout de même.
G.



Oui...

Le foreach balaye les DataRowView dans l'ordre de la condition du
"Sort" actuelle....
Si tu changes la propriété "Sort", un nouveau foreach tiendra compte du
nouveau tri...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr