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

最佳答案

DefaultIfEmpty 可以覆盖:

def list = []
def defaultIfEmpty = list ?: [ 'was empty' ]
FirstOrDefault 比较棘手,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值......但是,在 Groovy 中(目前),无法检测对象的默认类型(除非它是 native 类型)

你可以这样做:
Integer defaultIfEmpty = list[ 0 ] ?: 0

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

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

关于linq - 类似于 LINQ 的 DefaultIfEmpty 和 FirstOrDefault 的 Groovy 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10225658/

10-12 19:55