【发布时间】:2013-02-03 07:08:43
【问题描述】:
我有 2 个列表来跟踪网格上的 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))
我正在寻找某种方法来测试它们在列表中找到的索引。该列表也可以包含超过 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 while 循环中,每次迭代都会将它们增加 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..
}
}
}
【问题讨论】:
-
Andy 我建议,如果您使用 List
,请不要使用 x、h、w、...等变量名,这会使您的代码非常难以阅读。我希望您的其余编码不要那么草率。 -
我只是用了那个例子。我的真实代码使用匈牙利符号。 lst、int、str 等。;)
-
感谢您尝试提供遵循默认 C# 准则的代码。最好不要将匈牙利符号作为公共样本。为了让它变得非常好 - 为索引变量和坐标列表使用有意义的名称(如 DJ 建议的那样)。
-
好吧,也许您应该使用实数符号发布示例.. 让其他人认为您的变量是整数而不是 List
-
哦,我的错.. 只是认为如果我在那里输入我的问题是/正在使用 C# 代码,这对那些希望回答的人会有所帮助。将来会记住这一点,谢谢!我已经多次使用这个网站,但几乎总是能够在不发帖的情况下找到我的答案。