我偶然发现了这种非常奇怪的编译器行为。我正在尝试根据某些条件从 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;
这个问题可能结果很愚蠢,但它让我很头疼。
注意:即使是 Intellisence 也会显示相同的错误