如何让这些东西进入C#中的linq?

如何让这些东西进入C#中的linq?,c#,linq,C#,Linq,我对linq有问题,我有以下代码: Models.Users user = null; foreach (var item in db.Users) { if (item.username.Equals(username)) { ausgabe = true; user = item; } }

我对linq有问题,我有以下代码:

        Models.Users user = null;
        foreach (var item in db.Users)
        {
            if (item.username.Equals(username))
            {
                ausgabe = true;
                user = item;
            }
        }

        // linq, does not work
        user = null;
        var test = from u in db.Users
                   where u.username.Equals(username)
                   select u;
        user = (Models.Users)test;

在运行时,我收到了一个错误,因为test i IQueryable,但是如何进行此对话?

当您想要执行查询时,问题似乎是向用户抛出一个查询,因此可能:

user = test.SingleOrDefault();
(另请参见
FirstOrDefault()
First()
,以及
Single()

此外,为了方便阅读,我可以建议:

where u.username == username

(在常规代码中,这也避免了
u.username
null
,从而导致
NullReferenceException
)的问题

   var test = from u in db.Users
               where u.username.Equals(username)
               select u;
    user = (Models.Users)test; // wrong part.


我在哪里可以设置默认值?默认部分意味着在您的情况下,如果没有用户名,它将是空的found@gurehbgui,我只是看到你的评论,但Kev评论已经完成。我可以在哪里设置默认值?@gurehbgui以及类的“默认值”是什么样的?最好在查询后检查
user==null
,然后做您想做的事情。或者可能:
user=test.SingleOrDefault()??空瓶
user = test.FirstOrDefault();
 user = db.Users.FirstOrDefault(x=>x.username.Equals(username));