Groovy方法类似于LINQ的DefaultIfEmpty和FirstOrDefault

时间:2012-04-19 09:55:54

标签: linq groovy

Groovy是否有任何方法(开箱即用)类似于LINQ中的DefaultIfEmpty或FirstOrDefault方法?

1 个答案:

答案 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专家,因此这两个函数的功能可能不正确。