C# 运算符“&&”不能应用于和类型的操作数

C# 运算符“&&”不能应用于和类型的操作数,c#,entity-framework,linq,asp.net-mvc-4,C#,Entity Framework,Linq,Asp.net Mvc 4,执行以下代码时,出现以下错误: 运算符“&&”不能应用于“System.Collections.Generic.IEnumerablechar”和“System.Collections.Generic.IEnumerablechar”类型的操作数 错误显示在h.HOLIDAY_NAME.ExceptSunday和h.HOLIDAY_NAME.ExceptSaturday下 实际上,我想要的是获取所有Holyday_名称,这些名称不等于星期六和星期天。这是因为linq Exept返回IEnumer

执行以下代码时,出现以下错误:

运算符“&&”不能应用于“System.Collections.Generic.IEnumerablechar”和“System.Collections.Generic.IEnumerablechar”类型的操作数

错误显示在h.HOLIDAY_NAME.ExceptSunday和h.HOLIDAY_NAME.ExceptSaturday下

实际上,我想要的是获取所有Holyday_名称,这些名称不等于星期六和星期天。

这是因为linq Exept返回IEnumerable,您不能对IEnumerable应用&&运算符

试着这样做:

 public ActionResult HolidayIndex()
{
    IEnumerable<HOLIDAY_MASTER> hdms = null;
    hdms = db.HOLIDAY_MASTER.ToList()
        .Where(h => 
            !(h.HOLIDAY_NAME == "Sunday" || h.HOLIDAY_NAME == "Saturday" )
            && h.HOLIDAY_DEL.Equals(0)
            && h.REGION_ID.Equals(RegionID)
        )
    .OrderBy(h => h.DOH);
    return PartialView("HolidayIndex", hdms);           
}
返回新的枚举,而不是布尔值,因此不能对其应用任何&&-运算符。但是,您可以从列表中选择属性名不同时等于星期六和星期日的元素。 使用以下命令:

IEnumerable<HOLIDAY_MASTER> hdms = db.HOLIDAY_MASTER.ToList()
.Where(h => h.HOLIDAY_NAME != "Sunday" &&
    h.HOLIDAY_NAME != "Saturday" && 
    h.HOLIDAY_DEL.Equals(0) && 
    h.REGION_ID.Equals(RegionID))
.OrderBy(h => h.DOH);

您正在使用Linq的扩展方法。它从第一个集合中删除第二个集合中的所有项

其签名定义如下:

public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second)
public ActionResult HolidayIndex()
{
    IEnumerable<HOLIDAY_MASTER> hdms = null;
    hdms = db.HOLIDAY_MASTER.ToList().Where(h => h.HOLIDAY_NAME != "Sunday" && h.HOLIDAY_NAME != "Saturday" && h.HOLIDAY_DEL.Equals(0) && h.REGION_ID.Equals(RegionID)).OrderBy(h => h.DOH);
    return PartialView("HolidayIndex", hdms);           
}

您想做什么?正如错误所述,您不能在这些类型上使用逻辑&&。那意味着什么?从语义上讲,你想做什么?Where谓词?Except将返回一个eumousion,而不是bolean?您想知道h.HOLIDAY\u NAME.ExceptSunday是否包含任何元素吗?我假设您想知道。其中h=>h.HOLIDAY\u NAME!=星期日和h.HOLIDAY_NAME!=星期六?也许你能解释一下OP的密码有什么问题?
public ActionResult HolidayIndex()
{
    IEnumerable<HOLIDAY_MASTER> hdms = null;
    hdms = db.HOLIDAY_MASTER.ToList().Where(h => h.HOLIDAY_NAME != "Sunday" && h.HOLIDAY_NAME != "Saturday" && h.HOLIDAY_DEL.Equals(0) && h.REGION_ID.Equals(RegionID)).OrderBy(h => h.DOH);
    return PartialView("HolidayIndex", hdms);           
}