空白是一个变量'但是像一种方法一样使用' - 为什么我得到这个?

时间:2017-04-07 03:12:17

标签: c# linq-to-sql

我有清洁剂清单(linq类)我试图删除'清洁剂,如果他们未经证实。这是我的代码。

 List<ConfirmCleaner> Unconfirmed = context.ConfirmCleaners.Where(d => d.confirmed == false).ToList();
                List<Cleaner> Cleaners = context.Cleaners.ToList();
                List<Cleaner> TempCleaners = new List<Cleaner>();

                foreach (var c in Unconfirmed)
                {
                    foreach(var r in Cleaners){
                         if(c.cleanerId == r.id){
                             TempCleaners.Add(r);
                         }
                    }


                }
                List<Cleaner> result = Cleaners().Except(TempCleaners()).ToList();
                return result;

为什么我收到错误:

  

&#39;清洁剂&#39;是一个变量&#39;但是像一种方法一样使用&#39;

2 个答案:

答案 0 :(得分:4)

问题在于这一行:

List<Cleaner> result = Cleaners().Except(TempCleaners()).ToList();

您需要将其更改为:

List<Cleaner> result = Cleaners.Except(TempCleaners).ToList();

答案 1 :(得分:1)

希望错误消息足够明确以确定问题,无论如何,您已将Cleaner声明为Cleaners().的列表,并且当您在最终查询中使用该变量时,您正在使用与 return Cleaners.Except(TempCleaners()).ToList(); 相同,当您像这样使用时,编译器需要一个方法,这也是编译器在错误消息中指定的方法。所以代码应该是:

error_message