pst*_*jds 31 linq c++-cli .net-4.0 visual-studio-2010
只是想知道是否有办法在C++/CLI中使用LINQ.我找到了一篇专注于VS 2008的帖子,需要为System :: String类提供一些解决方法.我在CodeProject上看到了一些框架替换,但我想知道是否有一种方法可以直接在C++/CLI中使用它.如果可以,任何人都有一个好榜样?
Dav*_*Yaw 42
您可以使用System::Linq命名空间中定义的Linq方法,但是您必须跳过几个额外的环节.
首先,C++/CLI不支持扩展方法.但是,扩展方法是在各种类中定义的常规方法System::Linq,因此您可以直接调用它们.
List<int>^ list = gcnew List<int>();
int i = Enumerable::FirstOrDefault(list);
Run Code Online (Sandbox Code Playgroud)
其次,C++/CLI不支持lambda表达式.唯一的解决方法是声明一个实际的方法,并将其作为委托传递.
ref class Foo
{
public:
static bool GreaterThanZero(int i) { return i > 0; }
void Bar()
{
List<int>^ list = gcnew List<int>();
int i = Enumerable::FirstOrDefault(list, gcnew Func<int, bool>(&Foo::GreaterThanZero));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20648 次 |
| 最近记录: |