Partager via


List.PositionOfAny

Syntaxe

List.PositionOfAny(
    list as list,
    values as list,
    optional occurrence as nullable number,
    optional equationCriteria as any
) as any

À propos

Retourne le décalage auquel un élément de la liste spécifiée de valeurs apparaît dans une liste. Retourne -1 si aucune occurrence n’est trouvée.

  • list: liste à rechercher.
  • values: liste de valeurs à rechercher dans la liste d’origine.
  • occurrence: (Facultatif) Occurrence spécifique à signaler. Cette valeur peut être Occurrence.First, Occurrence.Last ou Occurrence.All. Si occurrence n'est pas spécifié, Occurrence.First est utilisé.
  • equationCriteria: (Facultatif) Spécifie la façon dont l’égalité est déterminée lors de la comparaison des valeurs. Ce paramètre peut être une fonction de sélecteur de clé, une fonction de comparateur ou une liste contenant à la fois un sélecteur de clé et un comparateur.

Exemple 1

Rechercher la première position dans la liste {1, 2, 3} à laquelle la valeur 2 ou 3 apparaît.

Utilisation

List.PositionOfAny({1, 2, 3}, {2, 3})

Sortie

1

Exemple 2

Recherchez la position dans la liste de toutes les instances de dates comprises entre 2022 ou 2023.

Utilisation

let
    Source = {
        #date(2021, 5, 10),
        #date(2022, 6, 28),
        #date(2023, 7, 15),
        #date(2025, 12, 31),
        #date(2022, 4, 8),
        #date(2024, 3, 20)
    },
    YearList = List.Transform(Source, each Date.Year(_)),
    TargetYear = {2022, 2023},
    FindPositions = List.PositionOfAny(YearList, TargetYear, Occurrence.All)
in
    FindPositions

Sortie

{1, 2, 4}

Exemple 3

Recherchez la position dans la liste de la dernière occurrence du mot chien ou chat, en ignorant la casse.

Utilisation

let
    Source = List.PositionOfAny(
        {"dog", "cat", "DOG", "pony", "bat", "rabbit", "dOG"}, 
        {"dog", "cat"}, 
        Occurrence.Last, 
        Comparer.OrdinalIgnoreCase
    )
in
    Source

Sortie

6

Exemple 4

Recherchez n’importe quelle position dans la liste qui se trouve dans deux unités du nombre 17 ou 28.

Utilisation

let
    Source = { 10, 15, 20, 25, 30 },
    Position = List.PositionOfAny(
        Source, 
        {17, 28},
        Occurrence.All, 
        (x, y) => Number.Abs(x - y) <= 2
    )
in
    Position

Sortie

{1, 4}

Critères d’équation