2012-04-29 68 views
0

我有一个lambda表达式:拉姆达搜索“包含”不返回预期的结果

 var masterDocs = GetMasterDocs(new TNGService.TngServiceClient()); 
     var searchStr = txtDocSearch.Text; 
     var filtered = masterDocs.Where(i => i.DisplayTitle.Contains(searchStr)); 
     lbxDocuments.DataSource = filtered; 
     lbxDocuments.DataBind(); 

出于某种原因,没有返回预期的结果。例如,有一个包含单词“Orifice”的DisplayTitle,但是当我运行这个表达式时,没有任何返回。我是否以这种错误的方式去做?

回答

3

Contains方法区分大小写。这可能是因为你的输入和比较在套管中有所不同吗?为了解决这个问题,你可以使用IndexOf来代替:

var filtered = masterDocs.Where(i => 
    i.DisplayTitle.IndexOf(
     searchStr, StringComparison.InvariantCultureIgnoreCase) >= 0); 
+1

aha,那就是它哈哈。谢谢。我只是添加了一些.ToUpper()在那里,甚至它 – Sinaesthetic 2012-04-29 06:03:25