就像查询LINQ to Object一样

时间:2010-04-30 06:22:57

标签: linq-to-objects

我有美国州名单

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

现在我有一个字符串,其中包含一些像okl这样的文本(对我来说这意味着俄克拉荷马州)。我想要什么'想'在列表状态查询并获得俄克拉荷马州。

3 个答案:

答案 0 :(得分:4)

类似的东西:

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

如果案例匹配也没关系,但对于不区分大小写的匹配,它不能很好地工作。为此,您可能需要以下内容:

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

选择您想要的确切字符串比较 - 例如,您可能希望使用当前文化。

答案 1 :(得分:1)

同时检查

  StartsWith
   EndsWith

另一个替代

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

答案 2 :(得分:0)

如果你想要一个非常复杂的近似匹配,请查看http://code.google.com/p/google-diff-match-patch/

中的Levenshtein距离