[英]Linq ObservableCollection return no result
我正在使用linq來搜索ObservableCollection中的產品,但是它沒有返回任何結果,例如我有一個產品名稱“stack”,但是當我搜索“s”時,它沒有返回結果:
private ObservableCollection<Product> _ProductList = new ObservableCollection<Product>();
public ObservableCollection<Product> ProductList
{ get { return _ProductList; } set { _ProductList = value; } }
我有一個文本框,當用戶輸入時,linq將在ObservableCollection中搜索產品名稱:
private void productSearch_KeyUp(object sender, KeyEventArgs e)
{
// Search text
string productSearchText = productSearch.Text.Trim();
// Search product, return no result
var search = ProductList.Where(s => s.Name.StartsWith(ProductSearchText));
search.ToList().ForEach(ProductList.Add);
}
編輯:
我注意到這是因為信件問題。 我需要大寫,如果產品名稱是大寫的,我怎么搜索字母大小寫?
如果問題出在感覺上,你可以嘗試使用它
s.Name.ToUppper().StartsWith(ProductSearchText));
或者你也可以試試這個
s.Name.ToUppper().StartsWith(ProductSearchText, StringComparison.OrdinalIgnoreCase));
你可能想要使用這樣的搜索foreach
foreach(var item in search)
{
// get a search item and do what you want with it
}
要執行不區分大小寫的搜索,請使用此方法的另一個重載:
var search = ProductList.Where(s => s.Name.StartsWith
(ProductSearchText,StringComparison.CurrentCultureIgnoreCase));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.