我正在使用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;
}
非常感谢。
也许你得到了国家对象的列表?还是数据库表?您需要某种方式将代码映射到该国家,但您没有指定足够的信息来告诉我们您希望该信息来自哪里。 – GolezTrol
@GolezTrol是正确的使用数据库表将节省你所有这一切在世界各地循环,再加上尝试解释一点。 –