我有List中的数据,如果数据与任何记录匹配,我想登录。
public HttpResponseMessage Post(form model)
{
List<form> user = new List<form>();
user.Add(new form { username = "admin", password = "admin" });
user.Add(new form { username = "Gopal", password = "123" });
user.Add(new form { username = "niit", password = "niit" });
if (model.username == user.Select(p => p.username.Equals(model.username))
{
}
}
我想要这样 - (完成硬编码数据)
if (model.username == "admin" && model.password == "admin")
{
return Request.CreateResponse(HttpStatusCode.Accepted);
}
else { return Request.CreateResponse(HttpStatusCode.InternalServerError); }
这是我的模型类 - 表单
public class form
{
[Required]
public string username { get; set; }
[Required]
public string password { get; set; }
}
我用硬编码数据完成了这项工作但是想要用list做。请帮我解决这个问题。我怎么能这样做?
答案 0 :(得分:1)
试试这种方式
if (user.Where(a => a.username == model.username && a.password == model.password).Select(p => p).Count() != 0)
{
return Request.CreateResponse(HttpStatusCode.Accepted);
}
else
{
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
或者您只需使用any
if (user.Any( a => a.username.Contains(model.username) && a.password.Contains(model.password)))
{
return Request.CreateResponse(HttpStatusCode.Accepted);
}
else
{
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
答案 1 :(得分:1)
我希望这不是生产代码!如果要存储用户数据,您将需要使用密码salting +哈希。如果您没有经验,最好不要用这种东西编写自己的代码。
但要回答你的问题,你很可能想要这个:
user.Any(u => u.username == model.username && u.password == model.password)
但是有更好的数据结构。例如,字典将允许通过用户名O(1)查找用户(表单?),而不需要遍历整个集合。
答案 2 :(得分:1)
你可以这样做,
reason: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TMMonth name]: unrecognized selector sent to instance 0x7f993bdbbb00'
答案 3 :(得分:0)
使用以下代码:
if (user.Where(x=> x.username.Equals(model.username) && x.password.Equals(model.password)).FirstOrDefault() != null)
{
return Request.CreateResponse(HttpStatusCode.Accepted);
}
else { return Request.CreateResponse(HttpStatusCode.InternalServerError); }
希望它会对你有所帮助。