StartsWith的扩展,用于搜索所有单词

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))

谢谢(欢迎其他更好的方法来实现这一目标)

p.s*_*w.g 6

您可以先按字词拆分字符串,如下所示:

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)