次のように、ダミーデータを含む単純なリストがあります。
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;
常に空の結果を返します。この場合、searchString はユーザーによって指定され、例は "Tor" になります。
where org.OrganisationName == searchString
検索文字列が Torn である' ' のようなさまざまなバリエーションを使用すると機能します。しかし、StartsWith は機能しません。
私が間違っているアイデアはありますか?
編集: Jon のコードから、コードを次のように変更しました。
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 に変更しましたが、どちらも同様の問題を引き起こしています。 私の組織の 1 つは「アブサ」と呼ばれています。アプリを初めて起動して「bsa」を入力しても何も返されないのは、本当に奇妙なことです。次に「Absa」と入力すると、良い結果が返されます。次に、再確認するために「bsa」を再度入力すると、最初のテストでは返されなかった Absa が返されました。結果が最初に機能せず、後で機能するのはなぜですか?
ありがとう、ジャック