gpt4 book ai didi

c# - Visual Studio 中的 Contains() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:44 27 4
gpt4 key购买 nike

我试着弄清楚两个物体是否被 Kinec 触摸记录。为此,我定义了各种形状 (handArea) 和 (DangerArea)。对于碰撞检测,我编写了以下代码:

private bool checkAreaViolation(List<MCvBox2D> DangerAreas, List<MCvBox2D> HandAreas)
{
int zaehler;
int ZaehlerDA;
int Test;
String TestS;
Test = 0;
ZaehlerDA= 0;
foreach (MCvBox2D DangerBox in DangerAreas)
{
zaehler = 0;
ZaehlerDA++;
foreach (MCvBox2D HandBox in HandAreas)
{
if(zaehler<=HandAreas.Count-1)
if (DangerAreas.Contains(HandAreas[zaehler])==true)
return true;

PointF[] handVertices = HandBox.GetVertices();
for (int i = 0; i < handVertices.Length; i++)
{
if (PointInPolygon(handVertices[i], DangerBox.GetVertices()))
{
return true;
}
zaehler++;
}
}
}
return false;
}

不幸的是,if (DangerAreas.Contains(HandAreas[zaehler])==true) 根本不起作用。

有人知道为什么吗?

最佳答案

System.Collections.Generic.List<t>.Contains检查是否且仅当列表包含该 exact 元素。这在实践中几乎永远不会发生。看起来您真的想检查区域是否存在交集或包含。 (您可以使用简单的 Linq 查询来完成此操作)

关于c# - Visual Studio 中的 Contains() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com