我希望複製在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#編譯器通常在底層捕獲變量的功能。 –