簡體   English   中英

Linq ObservableCollection沒有返回結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM