4

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

4

1 回答 1

3

DefaultIfEmpty可以覆盖:

def list = []
def defaultIfEmpty = list ?: [ 'was empty' ]

FirstOrDefault更棘手,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值......但是,在 Groovy(就目前而言)中,无法检测对象的默认类型(除非它是原生类型)

你可以这样做:

Integer defaultIfEmpty = list[ 0 ] ?: 0

然而应该注意的是elvis operator ?:Groovy的真值,所以如果运算符左侧的元素在 Groovy 中的计算结果为 false(无论是null空列表还是字符串,数字 0 等),它将返回右手边)

还需要注意的是,我不是 .NET 专家,所以这两个函数的功能可能不正确。

于 2012-04-19T10:24:09.273 回答