如何使用C#检查列表中是否存在值

时间:2013-10-26 09:42:26

标签: c# asp.net

我有以下代码,它给出了新的ASP.NET MVC5标识中的id和名称列表:

        var identityStore = new IdentityStore();
        var users =
          (
              from user in identityStore.DbContext.Set<User>()
              select new
              {
                  id = user.Id,
                  name = user.UserName
              }
          );

我如何修改它以便它允许我检查UserName是否存在?

以下是用户类:

public class User : IUser
{
    public User();
    public User(string userName);

    [Key]
    public string Id { get; set; }
    public virtual ICollection<UserLogin> Logins { get; set; }
    public virtual UserManagement Management { get; set; }
    public virtual ICollection<UserRole> Roles { get; set; }
    public string UserName { get; set; }
}

2 个答案:

答案 0 :(得分:1)

if(identityStore.DbContext.Set<User>().Any(u => UserName == "yourUserName"))
{
    // user exists
}
else
{
    // user does not exist
}

它是否符合您的要求?你的问题有点不清楚。

答案 1 :(得分:1)

如果符合您的要求,您可以使用where语句查询用户名,例如

var users = from user in identityStore.DbContext.Set<User>()
            where user.UserName != null && !user.UserName.Equals(string.Empty)
            select ...

无论如何,这个答案LINQ syntax where string value is not null or empty

可能是重复的

string.IsNullOrEmpty仅在某些情况下有效,所以要小心!

或者,如果您只是寻找特定的用户名,只需查询它

var users = from user in identityStore.DbContext.Set<User>()
            where user.UserName.Equals("whatever")
            select ...