C# 或操作员未在LINQ中工作

C# 或操作员未在LINQ中工作,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,我需要选择一个不包含2年级和8年级的列表。现在,所有等级为2的项目也会被选中。请看下面是我的代码 var subjectList = printViewModel.GetSubjects().Where(p => p.Grade != "2" || p.Grade != "8"); PrintTemplateViewModel类 public class PrintTemplateViewModel { public List<SubjectsViewModel> l

我需要选择一个不包含2年级和8年级的列表。现在,所有等级为2的项目也会被选中。请看下面是我的代码

var subjectList = printViewModel.GetSubjects().Where(p => p.Grade != "2" || p.Grade != "8");
PrintTemplateViewModel类

public class PrintTemplateViewModel
{
    public List<SubjectsViewModel> lstSubjectsViewModel { get; set; }

    public List<SubjectsViewModel> GetSubjects()
    {
        return lstSubjectsViewModel;
    }
}

public class SubjectsViewModel  
{ 
    public string Grade { get; set; } 
}
公共类PrintTemplateViewModel
{
公共列表lstSubjectsViewModel{get;set;}
公共列表GetSubjects()
{
返回lstSubjectsViewModel;
}
}
公共类SubjectsViewModel
{ 
公共字符串等级{get;set;}
}

您想要的是
&&
,而不是
|
。不管字符串值是什么,它总是不是“2”或不是“8”。不可能同时是两个!:)

您想要的是
&&
,而不是
|
。不管字符串值是什么,它总是不是“2”或不是“8”。不可能同时是两个!:)

或工作正常。是你的逻辑不起作用:D

使用
&&
,因为您要检查这两个值是否为真

或工作正常。是你的逻辑不起作用:D


使用
&&
,因为您要检查这两个值是否为真

既然已经有了一个
公共列表lstSubjectsViewModel{get;set;}
,为什么还要有一个
公共列表GetSubjects()
方法?既然已经有了一个
公共列表lstSubjectsViewModel{get;set;}
,为什么还要有一个
公共列表GetSubjects()
方法?