Har en funktion som hämtar matcher där vissa matcher har spelats och vissa inte. Kan det vara så att värdet som returneras av mlVO.Count() minskar när du har tagit bort poster? I sådana fall har du felet i villkoret för while-satsen. Klassiskt index-remove-problem.Ta bort poster från ett dataset
Vill sortera ut dom poster som ej har spelats
(m.MatcHomeTeamScore== 0 || m.MatchAwayTeamScore== 0)
<Code C#>
var mlVO = new MatchListVO();
mlVO = cv.getMatchSchemeNowAndNextRound(2009, 700222); // Hämta Tabellen
int i = 0;
while (i < mlVO.Count())
{
var m = mlVO.getMatch(i);
if (m.MatchHomeTeamScore == 0 || m.MatchAwayTeamScore == 0)
mlVO.Remove(i);
i ++;
}
</Code>
Det finns 21 poster i mlVO
I början så fungerar denna, men det verkar som om i får krupp efter 16 poster. och då hoppar över if satsen.
Har jag gjort något fel eller skulle man ha gjort på något annat sätt?Sv: Ta bort poster från ett dataset
/JohanSv:Ta bort poster från ett dataset
Kör loopen baklänges istället så blir det rätt eftersom index inte ändras då. Samt spara count i variabel så att den inte ändras.
int i = mlVO.Count() - 1;
while (i >= 0)
{
var m = mlVO.getMatch(i);
if (m.MatchHomeTeamScore == 0 || m.MatchAwayTeamScore == 0)
mlVO.Remove(i);
i--;
}