我发现了一种非常奇怪的编译器行为。我正在尝试根据某些条件从ObservableCollection中删除项目。以下是我的代码,它会报错:
public ObservableCollection<StandardContact> StandardContacts { get; set; }
....
StandardContacts.Remove(s => s.IsMarked); //Compiler Error
错误信息如下:
Error Cannot convert lambda expression to type 'RelayAnalysis_Domain.Entity.StandardContact' because it is not a delegate type
令人惊讶的是,下面的代码在同一方法中也可以工作
var deleteCount = StandardContacts.Where(s => s.IsMarked).Count(); //This Works
我已经在我的类中导入了以下内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Entity;
这个问题可能看起来很傻,但却让我困扰了好一阵子。
提示:即使智能感知也显示相同的错误。