Bonjour à tous,

Je cherche à implémenter une méthode permettant de filtrer une liste A et retournant une liste B en recherchant un texte parmi les champs des objets de la liste A. J'ai deux possibilités :
* Chercher directement dans le JSON
* Chercher dans les objets désérialisés sous forme de List<Fullname>

Les performances sont importantes mais pas primordiales (entre 100 et 200 entrées dans la liste A)
Une implémentation de Lucène serait trop lourd pour ce besoin.

Avez-vous une solution plus optimisée qu'une recherche via un for + contains ? (j'ai volontairement simplifié les champs dans l'exemple ci-dessous, il y en aurait 5 au lieu de 2).

Merci pour vos conseils et/ou ressources.


Exemple, avec la liste A suivante (au format JSON mais peut être la liste désérialisée) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
   "listA" : [
      {
          "firstname": "marcel",
          "lastname" : "dupont"
      },
      {
          "firstname": "Florent",
          "lastname" : "Rato"
      },
      {
          "firstname": "pierre",
          "lastname" : "marrant"
      }
   ]
}
Une recherche de la chaine "mar" doit me retourner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
{
   "listB" : [
      {
          "firstname": "marcel",
          "lastname" : "dupont"
      },
      {
          "firstname": "pierre",
          "lastname" : "marrant"
      }
   ]
}
Une recherche de la chaine "nt" doit me retourner la même liste car dupont, florent, marrant