我有美国州名单
List<string> state // contain all 51 US states
现在我有一个字符串,其中包含一些像okl这样的文本(对我来说这意味着俄克拉荷马州)。我想要什么'想'在列表状态查询并获得俄克拉荷马州。
答案 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距离