簡體   English   中英

在asp.net mvc 5的下拉列表中有區別

[英]Distinct in dropdown list in asp.net mvc 5

如何從下拉列表中刪除重復記錄,這對我來說很好,但由於數據庫中具有相同的名稱,但我想刪除多個記錄,所以我獲得的記錄超過兩個。

public ActionResult Index()
{
    List<OrbatTable> CountryList = db.OrbatTables.ToList();
    ViewBag.CountryList = new SelectList(CountryList, "CityName", "CityName");
    return View();             
}

public JsonResult GetStateList(String CityName)
{
    db.Configuration.ProxyCreationEnabled = false;
    List<OrbatTable> StateList = db.OrbatTables.Where(x => x.CityName == CityName)
        .Distinct().ToList();
    return Json(StateList, JsonRequestBehavior.AllowGet);        
}

這是我的下拉列表代碼

@if (ViewBag.CountryList != null)
{
    @Html.DropDownListFor(model => model.CityName, ViewBag.CountryList as SelectList, 
        "--Select City", new { @class = "form-control" })            
}

GroupBy可以在這里使用。

List<OrbatTable> StateList = db.OrbatTables.GroupBy(x => x.CityName == CityName)
        .Select(x =>x.First()).ToList();

如果我了解您的目標是,有兩種選擇:

(每個選項都是對GetStateList方法主體的建議編輯)

  1. 要緊貼您當前正在執行的操作,可以嘗試一種巧妙的DistinctBy方法

  2. 您可以創建一個空的目標列表,然后遍歷您的源列表,僅當每個項目不在目標列表中時,才將其添加到目標列表中

(我剛才已經發表評論,但是我的聲譽還不夠高。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM