问题
Why it doesn't work in C++/CLI ?
_list->Remove(_list->Find(x => x.Inode == 2));
I received an error error C2065: 'x' : undeclared identifier
回答1:
@Hans Passant's comment is the answer, so I'm just pasting it here:
C++/CLI doesn't support lambda expressions. The language was frozen in 2005, no new bells and whistles were added to it since then. You'll need to use a delegate explicitly. C++11 got lambdas but they are not compatible with C++/CLI. – Hans Passant
回答2:
As Hans Passant commented, C++/CLI doesn't support lambda notation. If you need to use the Find method it can be done by creating your own delegate and invoking it with a new instance of
_list->Find(gcnew Predicate<T>(gcnew &MyDelegate(params)))
Here's a link to a snippet that I used: Custom List::Find() Method in C++/CLI
来源:https://stackoverflow.com/questions/22864844/listt-find-method-in-c-cli