我希望复制在C++ CLI中的C#代码,但我没有发现谷歌也没有在计算器如何使用Linq任何()在C++/CLI
C#任何 “任何()” LINQ例子代码
private static void Main(string[] args)
{
var grettings = new List<string>()
{
"Hey",
"Hi",
"How"
};
var currentGreeting = "Hey are you ok ?";
var b = grettings.Any(a => currentGreeting.Contains(a));
if (b)
{
Console.WriteLine("It is a greeting");
}
}
C++ CLI尝试
static bool Lambda(String^ lambdaObj, String^ objName)
{
return objName->Contains(lambdaObj);
}
static MinionType GetMinionType(obj_AI_Minion^ minion)
{
if(minion != nullptr)
{
auto skinName = minion->CharDataInfo->BaseSkinName;
auto any = Enumerable::Any(LaneMinionsNames, gcnew Func<String^, String^, bool>(&Lambda));
if(any)
{
}
}
return None;
};
错误
为什么当C#版本只需要1时,C++ - CLI lambda需要2个参数? –
嗯,我不知道如何访问我在C++上使用c的“a”来检查名称是否包含它,这是我的结构 –
您将不得不创建一个托管类并将该字符串添加为成员,那么你的函数就成为该类的非静态成员。这就是C#编译器通常在底层捕获变量的功能。 –