我制作了一个自动完成框,它根据用户在 TextBox 中的输入显示项目列表,每次用户在文本框中键入一个字符时都会调用以下方法,然后它返回匹配单词的项目列表:
internal readonly ObjectSet<T> _set; //database data
public IEnumerable<IOrganization> GetOrganizations(string Input, int max)
{
return this._set.Where(e.name.Contains(Input)).Take(max).ToList();
}
数据库数据看起来像一个带有组织名称的目录:
name
------
Organization #20
Clinic of some type #22
another clinic bla bla
等等
一切正常。但是现在我想返回name
包含用户输入的每个单词的项目列表。例如,如果我的name
样子:Republic organization #23
并且用户输入:repu org
这个名称应该在返回的列表中。我想我应该将用户输入拆分为单词数组,然后检查Contains()
每个单词:
string[] terms = input.Split(' ');
然后我如何才能一次检查每个项目terms
,以便我name
将包含输入中的所有单词?提前致谢!