我正在研究一种搜索方法,该方法将使用 Ajax 调用,并在 Mvc4 中更新 Webgrid。搜索将通过包含一些字段的 Project 对象列表。
领域之一是国家。现在我的代码只检查输入字符串是否包含搜索字符串:
private bool StringStartWith(string input, string searchstring)
{
bool startwith = false;
var inputlist = new List<string>(input.ToLower().Split(' ').Distinct());
var searchList = new List<string>(searchstring.ToLower().Split(' '));
var count = (from inp in inputlist from sear in searchList where inp.StartsWith(sear) select inp).Count();
if (count == searchList.Count)
startwith = true;
return startwith;
}
但我也希望能够按国家代码搜索。所以如果我写“DK”,它应该说明它等于丹麦。
我希望我能得到一些帮助。谢谢。
//更新!!
iTURTEV 的回答帮助我使我的方法正常工作。我只需要更新我的方法,如下所示:
private bool InputStartWithSearch(string input, string searchstring)
{
if(searchstring[searchstring.Length-1].Equals(' '))
searchstring = searchstring.Substring(0,searchstring.Length-2);
bool startwith = false;
var inputlist = new List<string>(input.ToLower().Split(' ').Distinct());
var searchList = new List<string>(searchstring.ToLower().Split(' '));
if (searchstring.Length == 2)
{
var countryCode = new RegionInfo(searchstring.ToUpper()).EnglishName;
if (inputlist.Any(country => country.ToLower().Equals(countryCode.ToLower())))
{
return true;
}
}
var count = (from inp in inputlist from sear in searchList where inp.StartsWith(sear) select inp).Count();
if (count == searchList.Count)
startwith = true;
return startwith;
}
非常感谢。