...我有点困惑,或者不确定如何处理LINQ语句引起的错误。我只是喜欢能够根据某些标准...使用单行代码从集合中提取一个或多个项目。太棒了。但让我感到困惑的是错误处理或边界条件检查。如果我想使用First()检索项目,并且没有项目满足我的查询,则会引发异常。这有点令人失望,因为现在我必须用单独的try/catchblock包装每个LINQ语句。对我来说,代码开始看起来有点困惑,特别是因为我最终不得不在try/catchblock之外声明变量,所以我可以稍后使用它们的(null)值(在捕获block)。这里有人了解我的困境吗?如果我必须将每个LINQ语句包装在try/catchblock
...我有点困惑,或者不确定如何处理LINQ语句引起的错误。我只是喜欢能够根据某些标准...使用单行代码从集合中提取一个或多个项目。太棒了。但让我感到困惑的是错误处理或边界条件检查。如果我想使用First()检索项目,并且没有项目满足我的查询,则会引发异常。这有点令人失望,因为现在我必须用单独的try/catchblock包装每个LINQ语句。对我来说,代码开始看起来有点困惑,特别是因为我最终不得不在try/catchblock之外声明变量,所以我可以稍后使用它们的(null)值(在捕获block)。这里有人了解我的困境吗?如果我必须将每个LINQ语句包装在try/catchblock
我需要映射一个列表并检索第一个非空元素,并且我需要像在Java8流API中那样短路映射操作。在Kotlin中是否有现成的方法可以在没有Java8流的情况下执行此操作?为此,我创建了自己的扩展方法:funIterable.firstNonNullMapping(transform:(T)->R?):R?{for(elementinthis){valresult=transform(element)if(result!=null){returnresult}}returnnull}测试证明这是可行的valfirstNonNullMapping=listOf(null,'a','b').fi
鉴于以下从KotlinKoans中提取的代码:funShop.findAnyCustomerFrom(city:City):Customer?{//Returnacustomerwholivesinthegivencity,ornullifthereisnonereturncustomers.firstOrNull{it.isFrom(city)}}我自己的解决方案使用了customers.find。两者都适用于koan场景。firstOrNull的文档和find看起来很相似。这两个函数有什么区别? 最佳答案 在2014年的这个帖子