28 votes

Saisir une partie de List<string>

J'ai une liste qui se présente comme suit :

some headline content
a subheadline containing the keyword 
1 2015-05-05 some data
2 2015-05-05 some data
3 2015-05-05 some data
some content
a subheadline containing another keyword 
useless stuff

Je veux donc maintenant classer tout ce qui se trouve entre "mot-clé" et "autre mot-clé". Peut-être devrais-je trouver l'index de "mot-clé" et "autre mot-clé" et utiliser .GetRange() mais existe-t-il une manière plus élégante de le faire, par exemple avec LINQ ?

57voto

Eser Points 1617

Vous pouvez utiliser SkipWhile y TakeWhile

var newList = list.SkipWhile(line => !line.Contains("keyword"))
                  .Skip(1)
                  .TakeWhile(line => !line.Contains("another keyword"))
                  .ToList();

3voto

Mark Jansen Points 704

yourList.Skip(10).Take(5);

Cela permet de sauter 10 éléments, puis de renvoyer les 5 suivants.

Mais cela ne fonctionnera que si vous connaissez déjà les index des mots-clés.

-5voto

user2545071 Points 400
List<String> stringsColl=new List<String>();
strinsColl.Add(..some you strs);
...
foreach(var str in stringsColl)
{
  if(str.Contains("keyword")
   {
      ...do some work
   }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X