使用linq检查IEnumerable列表的计数

时间:2018-07-31 10:18:53

标签: c# list linq where contains

我有一个IEnumerable类型的列表。

在我的linq中,我只想说一下此列表的计数是否大于0并且包含在查询中,那么它应该仅包含列表中包含ref的结果,否则,如果count为零,则返回所有结果。

我遇到了错误:

  

operator>不能应用于类型为method group和   'init'

public IEnumerable<int> Workareas { get; set; }

var workareas = trackAnalyticsService.GetWorkareas(new Track.TrackDataFilter(new int[] { companyId }, null, from, to, userFirmRef), maxWorkareas);

1 个答案:

答案 0 :(得分:0)

  
    

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

  

您是否应该最后一个单词是“ init”而不是“ int”? (更有意义)。

大概在某个地方有workareas.Count > 0。除IEnumerable没有Count属性外;他们有一个Count()方法。 (由于在使用不带参数的方法名称时,方法可能有很多重载,因此称为“方法组”)

因此,您需要workareas.Count() > 0。但是实际上,您需要workareas.Any()(一旦找到一个,它就会停止查找,而不是逐一计数)。