【发布时间】:2013-03-21 06:35:35
【问题描述】:
是否有字符串的 StartsWith 扩展,它在字符串中每个单词的开头进行搜索?
类似:
"Ben Stiller".StartsWithExtension("Sti") 返回真
我想要这个,所以我可以为搜索做一个谓词。
假设有一个名为 Persons 的列表,ICollection<Person>
每个人都有一个属性名称,其值类似于“Ben Stiller”或“Adam Sandler”。
我希望能够做如下谓词:
Persons.Where(p => p.Name.StartsWithExtension(query))
谢谢 (欢迎使用其他更好的方法来实现)
【问题讨论】:
-
如果姓氏有其自身的含义 - 在这种情况下,您想通过它进行搜索/过滤 - 将名称拆分为 2 个属性 - 名字和姓氏(以及可能是全名,以便于打印/记录或您对 person 对象所做的任何事情)
-
嗯,最简单(即使它不是“最好”)的方法可能是
Contains(" " + str);... -
if (sample_str.StartsWith("Sti" ) || sample_str.Contains(".Sti") || sample_str.Contains(" Sti")) return true; -
您需要将它与 Linq-to-Sql 或 Linq-to-Entities 一起使用吗?
-
@p.s.w.g 无论哪种方式,这都行不通:该方法无法转换为 SQL。它只适用于 linq to objects。
标签: c# linq search autosuggest startswith