【发布时间】:2014-05-02 09:37:32
【问题描述】:
我有一个IEnumerable 列表,我想防止从我的列表框中添加重复项(列表中已存在的项)。我发现我必须使用 LINQ,但因为我是 ASP.NET 的新手。在向列表中添加新项时,我不知道如何将列表项与列表框项进行比较:
这就是我的列表的显示方式::
public ActionResult Liste()
{
try
{
List<RubriquepointageVM> lstVM = ServiceApplicatif.GetListe()
.OrderBy(x => x.Rubrique_PointageId)
.ToList();
// Drop Down List des listRubrique
IEnumerable<RubriqueVM> listRubrique = RefDataManager.GetRefData<RubriqueVM>() as IEnumerable<RubriqueVM>;
if (listRubrique.Any())
{
ViewBag.idrub = listRubrique.First().RubriqueId;
}
ViewData["CodeRubrique"] = new SelectList(listRubrique, "RubriqueId", "CODELIBELLE");
return View(lstVM);
}
catch (Exception ex)
{
LoggerRubriquepointage.Error(string.Format("Exception : {0}", ex.Message.ToString()));
throw new Exception("Erreur lors du chargement.");
}
}
我想知道的是如何使用 LINQ 防止从我的列表框中添加我的 Rubriqueintermediarelist 中的现有项目。
我的 Save() 方法:
public JsonResult Save([DataSourceRequest] DataSourceRequest dsRequest, RubriquepointageVM vm)
{
try
{
IEnumerable<RubriqueVM> listRubrique = RefDataManager.GetRefData<RubriqueVM>() as IEnumerable<RubriqueVM>;
ViewData["CodeRubrique"] = new SelectList(RefDataManager.GetRefData<RubriqueVM>(), "RubriqueId", "CODELIBELLE", 976);
List<RubriquepointageVM> lstRubriqueinter = ServiceApplicatif.GetListe();
**//Iwant my test to be her before adding an item**
RubriquepointageVM rub = ServiceApplicatif.Save(vm);
DataCache dataCache = new DataCache(CurrentSecurityContext.TenantID);
dataCache.DropDataCache<RubriquepointageVM>();
return Json(new[] { lstVMrub }.ToDataSourceResult(dsRequest, ModelState));
}
catch (Exception ex)
{
LoggerRubriquepointage.Error(string.Format("Exception : {0}", ex.Message.ToString()));
throw new Exception("Erreur lors de l'enregistrement.");
}
标签: c# linq asp.net-mvc-3 listbox