检查列表包含字符串

时间:2015-04-24 10:50:38

标签: c# json linq

有一个类将用于远程验证功能,但无法使其正常工作

[HttpPost]
public JsonResult doesUserNameExist(string Forename)
{
    IEnumerable<SelectListItem> user = new List<SelectListItem>();
    using (EIPInternalEntities ctx = new EIPInternalEntities())
    {
        user = new SelectList(ctx.Database
                                 .SqlQuery<string>("EXEC dbo.uspGetLkUpJobTitle")
                                 .ToList());
    }

    var userlist = user.ToList();

    //return Json(user == null);
    return Json(!userlist.Contains(Forename));
}

尝试了不同的方法,但目前(Forename)被标记为

的错误
  

&#34;参数1无法从&#39;字符串&#39;转换至   &#39; System.Web.Mvc.SelectListItem&#39;

如果我尝试

var userlist = (SelectList)user;

//return Json(user == null);
return Json(!userlist.Contains(Forename));

然后是!userList。被标记为

  

SelectList不包含Contains的定义

2 个答案:

答案 0 :(得分:4)

试试这个

return Json(!userlist.Any(x => x.Text == Forename));

答案 1 :(得分:2)

你可以尝试这个:

!userlist.Any(item => item.Text == Forename);

userlistSelectListItem个对象的列表。每个SelectListItem都有三个属性NameValueSelected。我想很明显你想要找Text。如果您想查找该值,只需使用item.Value

重写上述内容即可