我有boolinq - 感谢开源LINQ C ++实现与vs2010兼容。我喜欢它的语法 - 它看起来与C#一样接近(从简短的外观at all other VS2010 LINQ C++ implementations)。但它确实缺少一些基本的LINQ功能。我想知道如何在其中实施.First(lambda expression)
或.FirstOrDefault(lambda expression)
支持?
答案 0 :(得分:1)
由于c ++向量具有front()
和empty()
方法,因此您只需执行以下操作:
.First(lambda)
,您只需查看.Where(lambda).ToVector().empty()
即可。如果是,则抛出异常,否则返回.Where(lambda).ToVector().front()
.FirstOrDefault(lambda)
,您只需查看.Where(lambda).ToVector().empty()
即可。如果为true则返回默认值,否则返回.Where(lambda).ToVector().front()