在c#中linq不等于

时间:2012-09-26 06:26:22

标签: c# linq

我在项目中使用Linq。

我希望所有来自viewTeachers的老师,其中Mailcode不等于20。

我的代码是

var startWithFullName = from v in Db.viewTeachers
                                            where v.FullName.StartsWith(prefix) && !v.MailCode.Equals(20)
                                            orderby v.FullName
                                            select new { v.ID, v.FullName };

                    foreach (var teacher in startWithFullName)
                    {
                        teacherTable.Rows.Add(teacher.FullName, teacher.ID);
                    }

我写过

!v.MailCode.Equals(20)

但不确定它是否正确。

任何人都可以告诉我该怎么办?

3 个答案:

答案 0 :(得分:6)

您可以简单地将您的条件写为:

v.MailCode != 20

所以你的where子句应该是:

where v.FullName.StartsWith(prefix) && v.MailCode != 20

答案 1 :(得分:1)

条件可写为!= 20 ..

这样的事情:

var startWithFullName = from v in Db.viewTeachers 
          where v.FullName.StartsWith(prefix) && v.MailCode != 20
          orderby v.FullName 
          select new 
              { 
                 v.ID, 
                 v.FullName 
               };

答案 2 :(得分:-1)

它不会编译。等于在连接中使用以及应该使用的条件!=。 希望这能清除你的疑虑。