voici mon problème. J'ai une liste de données, triées par dateStart:Recherché: Liste de données suivant certaines règles concernant les dates
index dateStart dateEnd value
[0] 2009-11-01 04:20 2009-11-01 05:40 5
[1] 2009-11-01 06:30 2009-11-01 08:42 10
[2] 2009-11-01 07:43 2009-11-01 16:12 0
[3] 2009-11-01 10:43 2009-11-01 14:34 -12
[4] 2009-11-01 12:34 2009-11-01 12:42 3
La sortie finale que je veux serait un sous-ensemble de cette liste, où dateStart et dateEnd de 2 articles différents ne seraient jamais en conflit.
Dans l'exemple actuel, je voudrais commencer à [0] et le conserver.
Pour [1], depuis son dateStart> [0] .dateEnd, je le garderais aussi.
Pour [2], depuis sa dateStart < = [1] .dateEnd, je le supprimerais.
Pour [3], depuis son dateStart> [2] .dateEnd, je le garderais.
Pour [4], depuis sa dateStart < = [3] .dateEnd, je le supprimerais.
et ainsi de suite.
Je voudrais utiliser LINQ (Lamda préféré) pour cela, si possible.
Sinon, je suppose qu'une norme pour la boucle ferait l'affaire.
Un autre moyen intéressant d'obtenir ma sortie finale serait de conserver toutes les données, mais ajouter un drapeau à chaque élément (bValid), qui indiquerait si les données doivent être prises ou non.
Merci! p.s. désolé pour la mise en forme, j'ai essayé de mon mieux (premier post ici)
Salut et merci pour votre réponse! Vous avez repéré correctement, mais [3] devrait être conservé, parce que j'ai oublié d'expliquer un autre concept dans ma question originale ... En fait, je prends [3] parce que son dateStart> [dernier élément que j'ai gardé] .dateEnd, qui est le [1] et son dateEt est 08:42 – ibiza
donc ce n'est pas toujours un contrôle sur l'élément avant (index - 1), mais plutôt sur le dernier élément que j'ai gardé ... – ibiza
@ibiza, S'il vous plaît voir ma réponse mise à jour. –