Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';我不能使用.Any()?_C#_Linq_Linq To Sql - Fatal编程技术网

C# 为什么可以';我不能使用.Any()?

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)

一开始,我对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).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