首先,我會建議你移動o UT斯達康的condition statement
到一個單獨的方法,因爲它將使代碼更具可讀性,當你使用Linq:
private bool UserNameContains(<your user name> user, string searchFor)
{
return user.FirstName.IndexOf(searchFor, StringComparision.OrdinalIgnoreCase) != -1 ||
user.LastName.IndexOf(searchFor, StringComparision.OrdinalIgnoreCase) != -1;
}
請注意,我用的IndexOf(...) != -1
。這是因爲Contains
內部使用相同的方法,但使用StringComparision.Ordinal
參數。假設你不關心外殼,那麼使用IndexOf(..., StringComparision.OrdinalIgnoreCase)
好多了,這樣你就可以避免降低字符串字符,並防止引入錯誤,以防searchFor
包含一個高位字符。
然後,所有你需要做的是:
userInfoList.AddRange(allUserList.Where(user => this.UserNameContains(user, searchFor));
,或者如果userInfoList
是新的空單,你可以將整個邏輯移動到其變量聲明:
var userInfoList = allUserList.Where(user => this.UserNameContains(user, searchFor).ToList();
請注意,您應該添加using System.Linq;
使用指令爲了能夠使用Linq擴展。
ToLower是一個函數,所以你需要大括號 – WebFreak001 2014-11-14 14:47:17
@ WebFreak001正確 – Jonesopolis 2014-11-14 14:47:39