2015-07-06 3 views
-1

Я хотел бы создать раскрывающийся список с уникальным значением. Однако я могу только создать исходный список, созданный из базы данных.Удалить дубликат/существующее значение из выпадающего списка

На моем языке стол она содержит 3-х языках: -ENG, GER, KOR

для языка я уже используется для списка вопросов: - KOR

Так что результат привязки к DropDownList должен: - ENG, GER

код

Мой контроллер:

List<SelectListItem> langResult = new List<SelectListItem>(); 

        ///// Ori Language 
        var result = from r in db.SURV_Language_Model 
            select r.Language; 

        ///// Used Language 
        var result2 = from r in db.SURV_Question_Ext_Model 
            join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID 
            orderby s.Question_Position ascending 
            where r.Qext_Question_ID == Question_ID 
            select new { r, s }; 

        /////Remaining Language 
        result 3 = result 2 - result 1 <==*** Pseudo code 

        foreach (var item in result3) 
        { 
         SelectListItem temp = new SelectListItem(); 
         temp.Text = item; 
         temp.Value = item; 
         langResult.Add(temp); 
        } 

        ViewBag.LangList = langResult; 

Мои Vie w Код:

@Html.LabelFor(model => model.Language) 
     @Html.DropDownListFor(model => model.Language, ViewBag.LangList as IEnumerable<SelectListItem>) 
     @Html.ValidationMessageFor(model => model.Language, "*") 

В любом случае, чтобы выполнить это?

+0

Не было бы проще, если вы просто очистить список, прежде чем заселять? – jmc

ответ

0

крепили кодом ниже, надежда может помочь вам все:

List<SelectListItem> langResult = new List<SelectListItem>(); 

       var result = from r in db.SURV_Language_Model 
           select r.Language; 

       var result2 = from r in db.SURV_Question_Ext_Model 
           join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID 
           orderby s.Question_Position ascending 
           where r.Qext_Question_ID == Question_ID 
           select r.Qext_Language; 


       List<string> list = new List<string>(result); 
       List<string> list2 = new List<string>(result2); 

       for (int x = 0; x < list.Count(); x++) 
       {    
        if (x < list2.Count()) 
        { 
         if (list[0].ToString() == list2[x].ToString()) 
         { 
          list.Remove(list[0].ToString()); 
         } 
        }  

       } 

       foreach (var item in list) 
       { 
        SelectListItem temp = new SelectListItem(); 
        temp.Text = item; 
        temp.Value = item; 
        langResult.Add(temp); 
       } 

       ViewBag.LangList = langResult; 
Смежные вопросы