我在那里boolinq - 与 vs2010 兼容的开源 LINQ C++ 实现。我喜欢它的语法——它看起来非常接近 C#(粗略地看一下 at all other VS2010 LINQ C++ implementations)。然而它确实缺少一些基本的 LINQ 函数。我想知道如何将 .First(lambda expression)
或 .FirstOrDefault(lambda expression)
支持实现进去?
最佳答案
由于 c++ vector 具有 front()
和 empty()
方法,您只需执行以下操作:
对于
.First(lambda)
,您只需检查.Where(lambda).ToVector().empty()
。如果为真抛出异常,否则返回.Where(lambda).ToVector().front()
对于
.FirstOrDefault(lambda)
,您只需检查.Where(lambda).ToVector().empty()
。如果为真返回默认值,否则返回.Where(lambda).ToVector().front()
关于c++ - 如何为 boolinq 实现 First 和 FirstOrDefault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15404486/