【问题标题】:How can I check if a value exists in a list using C#如何使用 C# 检查列表中是否存在值
【发布时间】:2013-10-26 17:57:59
【问题描述】:

我有以下代码,它为我提供了来自新 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
              }
          );

我怎样才能修改它,以便它允许我检查用户名是否存在?

这是用户类:

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; }
}

【问题讨论】:

  • 存在于哪里?你能补充一些解释吗?有点模糊。
  • 你在寻找 var isUserExist = identityStore.DbContext.Set&lt;User&gt;().Any(user =&gt; user.UserName == "Samantha") 的东西吗?

标签: c# asp.net


【解决方案1】:
if(identityStore.DbContext.Set<User>().Any(u => UserName == "yourUserName"))
{
    // user exists
}
else
{
    // user does not exist
}

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

【讨论】:

  • 是的,我认为它很完美。我现在就试试。
  • 小修正,应该是 Any(u => u.UserName == "yourUserName")
【解决方案2】:

如果这是您想要的,您可以使用 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 ...

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2021-09-21
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多