0

グリッド上のx座標とy座標を追跡するための2つのリストがあります。

高さ、次に幅をループし、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..
        }
    }
}
4

1 に答える 1

1

代わりにこれを試してください:

if (x.IndexOf(w) == y.IndexOf(h))
{
    // do your stuff
}
于 2013-02-03T07:11:21.780 に答える