Groovy是否有任何方法(开箱即用)类似于LINQ中的DefaultIfEmpty或FirstOrDefault方法?
答案 0 :(得分:3)
DefaultIfEmpty
可以涵盖:
def list = []
def defaultIfEmpty = list ?: [ 'was empty' ]
FirstOrDefault
比较复杂,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值...但是,在Groovy中(原样),没有办法检测对象的默认类型(除非它是本机类型)
你可以这样做:
Integer defaultIfEmpty = list[ 0 ] ?: 0
但是应该注意elvis operator ?:
适用于Groovy truth,因此如果运算符左侧的元素在Groovy中的计算结果为false(是null
,则为空列表或字符串,数字0等)它将返回右侧)
还应该注意的是,我不是.NET专家,因此这两个函数的功能可能不正确。