2014-03-07 45 views
-2

我試圖創建一個字符串列表(在用作JSON的控制器方法,被客戶端上的JQuery自動完成所使用)。有沒有辦法將這六條或七條線減少到兩條線?換句話說,我希望第一行創建IEnumerable字符串。最好的Linq語法爲JQuery創建列表自動完成

還有一種不使用自定義比較器的方法 - 它只是比較字符串(在CompanyMeasureName字段上)。

public JsonResult GetMyMeasureNameList(string term) 
{ 
    //I've defined a custom comparer called NameComparer on the MyMeasure Object 
    IEnumerable<MyMeasure> interList = 
     MyMeasure.Distinct(new MyMeasure.NameComparer()) 
       .Where(cmo => cmo.CompanyMeasureName 
            .ToLower() 
            .Contains(term.ToLower())); 

    List<string> retList = new List<string>(); 
    foreach (var cmo in interList.ToList()) 
    { 
      CompanyMeasure c = (CompanyMeasure)cmo; 
      retList.Add(c.CompanyMeasureName); 
    } 

    return Json(retList, JsonRequestBehavior.AllowGet); 
}   

在此先感謝

回答

-1

下解決了問題的一部分(像往常一樣,我想出了答案5秒發佈問題後)。不過,我仍然希望能夠不使用自定義比較器,因爲它看起來毫無意義。

IEnumerable<MyMeasure> interList = 
    MyMeasure.Distinct(new MyMeasure.NameComparer()) 
      .Where(cmo => cmo.CompanyMeasureName 
           .ToLower() 
           .Contains(term.ToLower())).Select(m => m.CompanyMeasure);