我正在使用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是正確的使用數據庫表將節省你所有這一切在世界各地循環,再加上嘗試解釋一點。 –