C# 为什么可以';我不能使用.Any()?
一开始,我对LINQ to SQL(以及一般的C#)非常陌生,以前还没有成功实现.Any()。我正在Visual Studio 2010中使用.Net 4.0 我已将新的LINQ to SQL数据集添加到我的项目中,并尝试执行以下操作:C# 为什么可以';我不能使用.Any()?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,一开始,我对LINQ to SQL(以及一般的C#)非常陌生,以前还没有成功实现.Any()。我正在Visual Studio 2010中使用.Net 4.0 我已将新的LINQ to SQL数据集添加到我的项目中,并尝试执行以下操作: var db = new HealthIndicatorsDataContext(); var d = DateTime.Today; if(db.HealthIndicators.FirstOrDefault(h => h.LogDate == d)
var db = new HealthIndicatorsDataContext();
var d = DateTime.Today;
if(db.HealthIndicators.FirstOrDefault(h => h.LogDate == d).Any())
// do something
不幸的是,我收到的无法解析Sysmbol'Any'
并且.Any()以红色突出显示。我已经读到我需要在我的项目中引用System.Core.dll,我已经添加了这个,但我仍然没有运气。我错过了什么
if(db.HealthIndicators.FirstOrDefault(h => h.LogDate == d).Any())
FirstOrDefault()
返回单个项,而不是IQueryable
或IEnumerable
-Any()
仅在这些项上定义。你可能想写的是:
if(db.HealthIndicators.FirstOrDefault(h => h.LogDate == d) != null))
或(更好):
FirstOrDefault()不返回集合,因此任何()都没有意义。如果您只需要知道是否至少存在一个,就可以将FirstOrDefault()替换为.Any()
if(db.HealthIndicators.Any(h => h.LogDate == d))
// do something
if(db.HealthIndicators.Any(h => h.LogDate == d))
// do something