C# 是否有方法获取从2d数组检索到的坐标中的对象以进行比较?
如果在2D数组中找到我的对象,我将尝试打印坐标。我使用.Equals,但它似乎忽略了它C# 是否有方法获取从2d数组检索到的坐标中的对象以进行比较?,c#,.net,multidimensional-array,C#,.net,Multidimensional Array,如果在2D数组中找到我的对象,我将尝试打印坐标。我使用.Equals,但它似乎忽略了它 private void PrintCarInfo(Car car, object[,] matrix) { int xCoordinate = 0; int yCoordinate = 0; int w = matrix.GetLength(0); int h = matrix.GetLength(1); f
private void PrintCarInfo(Car car, object[,] matrix)
{
int xCoordinate = 0;
int yCoordinate = 0;
int w = matrix.GetLength(0);
int h = matrix.GetLength(1);
for (int x = 0; x < w; ++x)
{
for (int y = 0; y < h; ++y)
{
if (matrix[x, y].Equals(car))
{
xCoordinate = x;
yCoordinate = y;
}
}
}
}
这是我从2D阵列调试时得到的结果:
[1,1] {Toyota (15)}
我使用.Equals,但它似乎忽略了它
private void PrintCarInfo(Car car, object[,] matrix)
{
int xCoordinate = 0;
int yCoordinate = 0;
int w = matrix.GetLength(0);
int h = matrix.GetLength(1);
for (int x = 0; x < w; ++x)
{
for (int y = 0; y < h; ++y)
{
if (matrix[x, y].Equals(car))
{
xCoordinate = x;
yCoordinate = y;
}
}
}
}
对
只会起作用
car
是对矩阵中实例的引用时,或car
与矩阵中的对象完全相同时,这才起作用
当您想要比较不同的对象但具有相同的属性值时,您必须自己实现相等
我使用.Equals,但它似乎忽略了它
private void PrintCarInfo(Car car, object[,] matrix)
{
int xCoordinate = 0;
int yCoordinate = 0;
int w = matrix.GetLength(0);
int h = matrix.GetLength(1);
for (int x = 0; x < w; ++x)
{
for (int y = 0; y < h; ++y)
{
if (matrix[x, y].Equals(car))
{
xCoordinate = x;
yCoordinate = y;
}
}
}
}
对
只会起作用
car
是对矩阵中实例的引用时,或car
与矩阵中的对象完全相同时,这才起作用
当您想要比较不同的对象但具有相同的属性值时,您必须自己实现相等 三,。使用值类型/struct@fubo-
汽车
属于类
。我不鼓励把它变成一个结构。我的错-在我看来,你想计算所有可能的方式Equals()
如何工作,我只想添加另一个选项是否可以只使用整个对象中的一个属性来检索和比较?这意味着如果索引相同,trueSure,if(矩阵[x,y].index==car.index)
3。使用值类型/struct@fubo-汽车
属于类
。我不鼓励把它变成一个结构。我的错-在我看来,你想计算所有可能的方式Equals()
如何工作,我只想添加另一个选项是否可以只使用整个对象中的一个属性来检索和比较?这意味着如果索引相同,trueSure,if(矩阵[x,y].index==car.index)
如果不重写Equals
,那么一个对象就不会相等,除非它是实际的相同实例,即使所有属性都相等。另外,我更喜欢@Jodrell-jagged(数组数组的数组)速度稍微快一点,但除非直接需要非矩形形状,否则我更喜欢多维。保持简单。如果不重写Equals
,那么对象就不会相等,除非它是实际的同一实例,即使所有属性都相等。顺便说一下,我更喜欢@Jodrell-jagged(数组数组数组)快一点,但除非直接需要非矩形形状,否则我更喜欢多维。保持简单。