2010-04-30 7 views
2

i ont un États américains listerequête ing LINQ to Object

List<string> state // contain all 51 US states 

Maintenant, j'ai une chaîne qui contient un texte comme okl (cela signifie pour moi l'Oklahoma). ce que je veux je veux 'comme' requête dans l'état Liste et obtenir l'état Oklahoma.

Répondre

4

Quelque chose comme:

var matches = states.Where(state => state.Contains(searchText)); 

C'est très bien si le cas correspond aussi bien, mais il ne fonctionne pas si bien pour les matches sensibles à la casse. Pour cela, vous voudrez peut-être quelque chose comme:

var matches = states.Where(state => 
     state.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) != -1); 

Choisissez la comparaison de chaîne exacte que vous voulez de façon appropriée - vous pouvez utiliser la culture actuelle, par exemple.

1

Vérifiez également

StartsWith 
    EndsWith 

une autre alternative

var query = from c in ctx.Customers 
       where SqlMethods.Like(c.City, "L_n%") 
       select c;