我对C#中的多维数组搜索有正确的想法吗?

我对C#中的多维数组搜索有正确的想法吗?,c#,arrays,multidimensional-array,xna,C#,Arrays,Multidimensional Array,Xna,我是多维数组的新手,我只是想在今天晚些时候开始针对多维数组编写代码之前,确保我对搜索有正确的想法 public int[,] LocationXY = new int[5,5]; 编辑多维数组的数组搜索: 搜索5乘5的多维数组的伪代码是这样的吗 用于移动地图的XNA代码: background.direction.X = background.position.X + 3000; background.direction.Norm

我是多维数组的新手,我只是想在今天晚些时候开始针对多维数组编写代码之前,确保我对搜索有正确的想法

        public int[,] LocationXY = new int[5,5];
编辑多维数组的数组搜索:


搜索5乘5的多维数组的伪代码是这样的吗

用于移动地图的XNA代码:

            background.direction.X = background.position.X + 3000;
            background.direction.Normalize();
            background.position.X += background.direction.X *               
            ball.speed;
            backgroundWest.direction.X = backgroundWest.position.X + 3000;
            backgroundWest.direction.Normalize();
            backgroundWest.position.X += background.direction.X * ball.speed;
            Map.ArraySearch(XSearch, YSearch);

            //if statement for changing background sprite.  
            if(LocationXY[0,1])
              background01.LoadContent(this.content, "background01";
搜索功能:

public int [,] ArraySearch(XSearch, YSearch)  

  {  
            for(int X = 0; X < XSearch; X++)  
                for(int Y = 0; Y < YSearch; Y++)  
                   if(Y == YSearch && X == XSearch)
                    return LocationXY[XSearch, YSearch]  
       }
public int[,]ArraySearch(XSearch,YSearch)
{  
对于(int X=0;X

总体思路是获取背景所在的if语句的数组值。我希望switch语句可以采用多维数组。

如果需要矩阵,请使用:
int[,]

如果需要数组的数组,在其中所有子数组都可以有不同的长度,请使用:
int[][]
。请记住(除了创建主数组外)在填充子数组之前始终要创建子数组,否则会出现NullReferenceException


如果您想要X和Y坐标的列表,请使用:
点[]

我建议您去MSDN阅读,然后

你在回答中的代码中所做的有点奇怪。。。循环和返回值的方式相互矛盾

假设一个数组
int[,]a=newint[X,Y]
(大小无关紧要)

这将得到索引m,n处的单元格:

int value = a[m,n]
这将在数组中搜索值为5的单元格位置:

Tuple<int,int> search (int[,] arr, int value)
{
    for(int i=0; i < arr.GetLength(0);i++ )
        for(int j=0; j < arr.GetLength(1);j++)
            if(arr[i,j] == value)
                return Tuple.Create(i,j);
}
元组搜索(int[,]arr,int值)
{
for(int i=0;i
找到答案的最佳方法-尝试一下。玩它。看看发生了什么。一个用于编译和测试输入、输出和调试的简单程序将教给您的不仅仅是这里给出答案的人。您的代码在技术上看起来是正确的,但肯定不是注册X,Y坐标的最佳或最简单的方法。考虑一下<代码>清单>代码>。不学习是最好的学习方法,但有条不紊地探索你能做什么、怎么做以及为什么做。这从理解基本概念开始,并在文档中继续。不是逆向工程C#搜索5乘5的多维数组的伪代码是这样的吗
public int[,]ArraySearch(XSearch,YSearch){for(int X=0;X
我不明白你想要什么。您的代码只返回第一行的第一个元素,因此:
LocationXY[0,0]
。因此,我只需要用一个
if(Y==YSearch)
来包装
return
,以获取特定的坐标?我仍然不明白。你能给我举一个阅读生活的例子吗,也许是编辑你的问题?比如:我有这个(一段带数据的代码),我想要这个结果(一段数据)。当玩家在一张分为25个不同精灵背景的地图上移动时,我试图抓取坐标。当他过渡到一个新区域时,当前地图将根据新旧地图的值滑出,新地图将滑入。我不能使用点[],因为类库应该独立于视图。switch语句的语法是否为
switch(Map.TupleHolder.Item1)
case 0
开关(Map.TupleHolder.Item2)
案例:0
否。。。这种语法用于为X和Y坐标切换选择正确的图像。我只是检查我是否理解元组语法的部分内容。这项服务的目的不是提高编码技能吗?