我有一个带有虚拟数据的简单列表,如下所示:
List<Organisation> list = new List<Organisation>();
list.Add(new Organisation() { LogoUrl = "/images/logos/Blade.png", OrganisationId = 1, OrganisationName = "Blade" });
list.Add(new Organisation() { LogoUrl = "/images/logos/Torn.png", OrganisationId = 2, OrganisationName = "Torn" });
当我运行 linq 查询时:
var results = from org in OrganisationsController.GetDummyList()
where org.OrganisationName.StartsWith(searchString)
select org;
它总是返回一个 Empty 结果。在这种情况下,searchString 由用户指定,示例为“Tor”。
where org.OrganisationName == searchString
在搜索字符串为 Torn 的情况下使用不同的变体,如 ' '。但是 StartsWith 永远不会起作用。
有什么想法我哪里出错了吗?
编辑: 从乔恩的代码中,我将代码更改为如下所示:
public JsonResult Search(string searchString)
{
//create json result object
JsonResult data = new JsonResult();
var list = OrganisationsController.GetDummyList();
//query the list
var results = from org in list
where org.OrganisationName.ToLower().Contains(searchString.ToLower())
select org;
if (results.Any())
{
System.Diagnostics.Debug.Write("found");
}
//setup the data
data.Data = results;
//return the data
return Json(data, JsonRequestBehavior.AllowGet);
}
注意:我将 StartsWith 更改为 Contains,但两者都给我带来了类似的问题。 我的组织之一叫做“Absa”。这是我第一次启动应用程序时非常奇怪的事情 然后我再次输入“bsa”只是为了仔细检查,它返回了 Absa,它在第一次测试中没有。为什么结果一开始不起作用然后起作用?
谢谢, 雅克