2013-02-03 32 views
0

我有2个列表来跟踪网格上的x和y坐标。比较2在同等索引下int类型的列表

Im循环遍历高度和宽度,然后使用if检查来查看w和h值是否位于同一索引处的列表中。

继承人我得到了但它不正常工作。

for (int h = yMin; h <= yMax; h++) 
{ 
    for (int w = xMin; w <= xMax; w++) 
    { 
    if (x[w] == (w) && y[h] == (h)) 
    { 
     //do some code 
    } 
    } 
} 

我也用。载有方法上的列表尝试,但,这并不相同指数在对它们进行比较......我在名单不在乎它们是什么索引,只要它们是在同一指数都在。

if (x.Contains(w) && y.Contains(h)) 

我正在寻找一些方法来测试它们在列表内部找到的索引。列表中也可以包含多于1个相同的数字。

if (x.Contains(w) && y.Contains(h)) 
{ 
    if (x.FoundIndex(w). == y.FoundIndex(h)) 
    { 
     // this would be awesome if it worked!!!! 
    } 
} 

刚上变量的说明.. YMIN和XMIN 0开始的for循环,而循环中的DO将由1每次迭代增加它们的内部。 yMax和xMax是我们在网格内看到的正方形的大小。

也许有一个更好的办法,我只是不知道..我试图找到一个坐标数据类型/对象,但不成功。

我能想到的唯一方法是循环显示x列表,并将每个索引与相同索引处的y列表进行比较。似乎应该有一个更干净的方式来做到这一点。

请帮忙!

编辑1: 在想到我正在努力完成的事情后,我能够围住它并想出了这个......这就是我的代码是如何在我的程序中为您使用的@DJ KRAZE

for (int intCnt = 0; intCnt < lstXCoord.Count(); intCnt++) 
{ 
    if (lstXCoord[intCnt] == intWidth) 
    { 
     if (lstYCoord[intCnt] == intHeight) 
     { 
      // do my code.. 
     } 
    } 
} 
+1

安迪我建议,如果您使用的是列表您不要使用变量名称,如X,H,W,...等这使得您的代码非常难以阅读..我希望你的其他代码不是那么草率。 – MethodMan

+1

我刚刚用这个例子。我真正的代码使用匈牙利符号。 lst,int,str等;;) –

+1

感谢您试图提供遵循默认C#指导原则的代码。不要把匈牙利符号作为公共样本是个好主意。为了使它真的很好 - 为索引变量和坐标列表使用有意义的名称(如DJ建议的那样)。 –

回答

1

试试这个:

if (x.IndexOf(w) == y.IndexOf(h)) 
{ 
    // do your stuff 
} 
+0

我得到了你的去向,但就像我说的,我不在乎,或者一定知道它可能在哪个索引处。该列表可以各有2个值,最多1,000个值。我想要在两个单独列表的给定索引处的值匹配我的'w'和'h',以知道im查看的坐标对是否存在于正在测试的区域内部。 –