如何为boolinq实现First和FirstOrDefault?

时间:2013-03-14 08:36:49

标签: c++ visual-studio-2010 linq c++11

我有boolinq - 感谢开源LINQ C ++实现与vs2010兼容。我喜欢它的语法 - 它看起来与C#一样接近(从简短的外观at all other VS2010 LINQ C++ implementations)。但它确实缺少一些基本的LINQ功能。我想知道如何在其中实施.First(lambda expression).FirstOrDefault(lambda expression)支持?

1 个答案:

答案 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()