dictionary: rechercher des chaînes de caractères avec une fonctionnalité similaire
Je recherche mes clés dans le Dictionnaire avec une fonction comme. Je veux les clés commencent par "a" ou leur 3ème lettre "e" ou leur 4rt lettre n'est pas "d"
en sql, il est possible d'écrire des requêtes "où (clé comme" un') et (clé aime pas 'd__') " je veux avoir cette fonctionnalité pour le Dictionnaire . Tout algorithme de suggestion que vous avez ?
Merci !
source d'informationauteur softwaremonster
Vous devez vous connecter pour publier un commentaire.
Alors que ce sera le SQL équivalent d'un scan de table, vous pouvez utiliser LINQ ou la
IEnumerable<T>
les méthodes d'extension à la recherche de votre dictionnaire pour toutes les valeurs dont les touches correspondent à un modèle:Méthode D'Extension:
LINQ:
Noter que la dernière partie de ces deux prédicats qui a trait à votre "quatrième lettre n'est pas "d". J'ai pris ça pour dire qu'une chaîne de trois caractères (ou moins) de long serait ce match. Si vous voulez dire que la chaîne est d'au moins quatre caractères ET de sa quatrième personnage n'est pas "d", le changement devrait être évident.
Être conscient que le primaire (de la performance) des prestations à la
Dictionary
classe est à l'aide de base de hachage de la clé des recherches, qui, dans le moyen et dans le meilleur des cas) est O(1). À l'aide d'une recherche linéaire comme c'est O(n), donc quelque chose comme cela, en général, être plus lente qu'une clé ordinaire de recherche.Vous pouvez accéder à la propriété Clés du Dictionnaire et ensuite utiliser une requête Linq pour évaluer vos clés:
Vous pouvez utiliser LINQ
Quelque chose comme cela
Ou
Ou
Suffit d'utiliser Linq:
Voici une petite extension je fouettée:
et vous pouvez l'utiliser comme ceci: