使用linq检查IEnumerable列表的计数



我有一个类型为IEnumerable的列表。

在我的linq中,我只想说,如果这个列表的计数大于0,并且它包含在查询中,那么它应该只包含列表中包含ref的结果,否则,如果计数为零,则返回all。

我得到错误:

运算符>不能应用于类型为方法组和"初始化">

public IEnumerable<int> Workareas { get; set; }
var workareas = trackAnalyticsService.GetWorkareas(new Track.TrackDataFilter(new int[] { companyId }, null, from, to, userFirmRef), maxWorkareas);

运算符>不能应用于方法组和'init'类型的操作数

最后一个字应该是"init"而不是"int"吗?(智力更有意义(。

大概在某个地方你有workareas.Count > 0。除了IEnumerable没有Count属性;它们具有CCD_ 4方法。(因为当你使用一个没有参数的方法名时,一个方法可能会有很多重载,所以它被称为"方法组"(

所以,你想要workareas.Count() > 0。但实际上,你想要workareas.Any()(它一找到一个就会停止查找,而不是计算每个(。

最新更新