【发布时间】:2021-07-14 15:13:50
【问题描述】:
您好,我有一个搜索框,它接受搜索字符串并在数据库中搜索它。帐户名称 Utsav Pal 的输入类似于“utsav pal”、“utsav p”、“pal”。但我只想使用像“uts pa”这样的首字母。谁能建议我该怎么做?
这是我使用的逻辑
if(!String.IsNullOrEmpty(vm.SearchString)){
accounts = accounts.where( a =>
((a.Forname != null) && (a.Forename +" "+ a.Surname).IndexOf(vm.SearchString, StringComparison.CurrentCultureIgnoreCase) >= 0 ) ||
((a.AccountCode != null) && a.AccountCode.IndexOf(vm.SearchString, StringComparison.CurrentCultureIgnoreCase) >= 0 )
【问题讨论】:
-
“但我只想使用首字母” 我的这个是什么意思?名为“utsav pal”的人的首字母是“u”和“p”,而不是“uts pa”·
-
你可以先测试
Forename + " " + Surname是否包含输入。如果 return 为 null,则在空格之前和之后拆分输入。拆分测试后,分别使用 Forename 和 Surname 分隔输入。 -
嗨,Marko Ivkovic,你能举个例子吗?
-
我的逻辑步骤是: 1.
(a.Forename +" "+ a.Surname).IndexOf(vm.SearchString)2.strings = vm.SearchString.Split(" ") foreach (string singleString in strings) a.Forename.IndexOf(singleString)3.strings = vm.SearchString.Split(" ") foreach (string singleString in strings) a.Surname.IndexOf(singleString)下一步只有在前一个返回null的情况下才会执行。注意:我不懂 C#,所以语法可能不是 100% 正确 -
嗨,Marko,我已经尝试过你的逻辑,但没有成功!!!