比较2个类型为int的列表在相同的索引处

时间:2013-02-03 07:08:43

标签: c# .net list loops

我有2个List来跟踪网格上的x和y坐标。

循环遍历高度然后是宽度,然后使用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
    }
  }
}

我也尝试在列表上使用.Contains方法但是在同一个索引上没有比较它们...我不关心它们在列表中的索引,只要它们在两者中都处于相同的索引。

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

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

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 while循环内部,每次迭代都会增加1。 yMax和xMax是我们在网格中看到的正方形的大小。

也许有一种更好的方式,我只是不知道..我试图找到一个Coordinate数据类型/对象但是没有成功。

我能想到的唯一方法是通过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 个答案:

答案 0 :(得分:1)

请改为尝试:

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