2

我有boolinq - grate 开源 LINQ C++ 实现与 vs2010 兼容。我喜欢它的语法——它看起来和 C# 一样接近(从对所有其他 VS2010 LINQ C++ 实现的简短了解)。然而,它确实缺少一些基本的 LINQ 函数。我想知道如何实施.First(lambda expression).FirstOrDefault(lambda expression)支持它?

4

1 回答 1

1

由于 c++ 向量具有front()empty()方法,因此您只需执行以下操作:

  • 对于.First(lambda),你只需要检查.Where(lambda).ToVector().empty()。如果为真则抛出异常,否则返回.Where(lambda).ToVector().front()

  • 对于.FirstOrDefault(lambda),你只需要检查.Where(lambda).ToVector().empty()。如果为真则返回默认值,否则返回.Where(lambda).ToVector().front()

于 2013-03-14T08:57:43.270 回答