spo*_*rts 4 c# linq search startswith autosuggest
是否有字符串的StartsWith的扩展,它在字符串中的每个单词的开头搜索?
像:
"Ben Stiller".StartsWithExtension("Sti")回归真实
我想要这个,所以我可以做一个搜索的谓词.
假设有一个名为Persons的列表,ICollection<Person>
每个人都有一个属性Name,其值为"Ben Stiller"或"Adam Sandler".
我希望能够做如下的谓词:
Persons.Where(p => p.Name.StartsWithExtension(query))
谢谢(欢迎其他更好的方法来实现这一目标)
您可以先按字词拆分字符串,如下所示:
var result = "Ben Stiller".Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
.Any(x => x.StartsWith("Sti"));
Run Code Online (Sandbox Code Playgroud)
当然你可以用你自己的扩展方法来编写这个,如下所示:
public static bool AnyWordStartsWith(this string input, string test)
{
return input.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
.Any(x => x.StartsWith(test));
}
Run Code Online (Sandbox Code Playgroud)