我使用linq搜索ObservableCollection中的产品,但它不返回任何结果,例如我有一个产品名称“stack”,但是当我搜索“s”时,它不返回任何结果:Linq ObservableCollection不返回结果
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);
}
编辑:
我注意到这是因为信件的问题。如果产品名称为大写,我需要大写,如何查找字母大小写?
可能在行var search = ProductList.Where(s => s ....你可能想要检查ProductList指向的是有数据的东西。至于区分大小写的问题,只需进行所有搜索.ToLowerCase – frenchie
您正在将搜索结果添加回源。这是故意的吗? – alexm
@alexm,是故意的。 – Alvin