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

本文关键字:是否 存在 列表 何使用 检查 | 更新日期: 2023-09-27 18:37:05

我有以下代码,它为我提供了来自新 ASP.NET MVC5 Identity的ID和名称列表:

        var identityStore = new IdentityStore();
        var users =
          (
              from user in identityStore.DbContext.Set<User>()
              select new
              {
                  id = user.Id,
                  name = user.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; }
}

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

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

它适合您的要求吗?你的问题有点不清楚。

您可以使用

where 语句查询用户名,如果这是您想要的,例如

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

无论如何,它可能是这个答案 LINQ 语法的副本,其中字符串值不为 null 或为空

字符串。IsNull或Empty只在某些情况下起作用,所以要小心!

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

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